RIA Services: Paso a paso (I)

Es un post anterior hablaba de RIA Services y de cómo esta nueva tecnología nos puede ayudar a simplificar el desarrollo de aplicaciones RIA

En este post toca empezar con la práctica y enseñar paso a paso un ejemplo básico de lo que es. Vamos a hacer un ejemplo muy sencillo usando la base de datos Northwind. Crearemos una aplicación Silverlight que muestre en un grid la lista de proveedores.

Si queréis repetir los ejemplos que aquí os enseño necesitareis tener instalado Silverlight 3 y la preview de mayo de RIA Services.

Lo primero será crear una nueva aplicación Silverlight; Silverlight Application.

1

Una seleccionado este tipo de proyecto os aparecerá un cuadro de diálogo, que sólo os aparecerá si tenéis instalado RIA Services.

2.1

Para que la aplicación sea una aplicación que haga uso de la funcionalidad de RIA Services, es necesario seleccionar la opción  “Link to ASP.NET server project”. Si no se selecciona esta opción la aplicación será una aplicación Silverlight normal y corriente.

Una vez seleccionada esta opción, se generarán dos proyectos dentro de la solución que se acaba de crear; un proyecto que contiene la aplicación Silverlight, la aplicación que hará de cliente, y una aplicación web, que contendrá el código de servidor.

Este segundo proyecto es el que se ejecutará en el servidor y el que contendrá toda la lógica de negocio y acceso a datos que necesite la aplicación. El primer proyecto es la parte cliente, la que se ejecuta en el navegador de cliente y la que tiene que consumir los servicios que el servidor le ofrezca.

3

Si ya tenemos nuestra aplicación Silverlight creada o la hemos creado sin la opción de unirla a un proyecto web no te preocupes, a posteriori también se puede hacer a través de las opciones del proyecto.

4

Una vez que tenemos creada la estructura de nuestra aplicación, en el proyecto servidor, vamos a crear todo lo necesario para exponer al cliente la lista de proveedores.

Para el ejemplo vamos a usar un diagrama de ADO.NET Entity Framework, pero tenemos que tener en cuenta que para usar RIA Services no tenemos por qué hacer uso de una base de datos ni de Entity Framework.

Eso sí, si necesitamos hacer uso de una base de datos, Entity Framework puede ser el complemento perfecto.

Agregamos un nuevo elemento al proyecto; ADO.NET Entity Data Model. Al nuevo diagrama le llamamos Northwind.

5

Una vez creado nos aparecerá un asistente que nos permitirá crear el diagrama de Entity Framework. Para este ejemplos seleccionaremos únicamente la tabla Suppliers.

En los ejemplos que veremos haremos uso de Entity Framework pero no entraremos lo pasaremos sólo por encima sin entrar a explicar todas las posibilidades que nos ofrece. Para ello, os recomiendo el libro “ADO.NET Entity Framework”, un libro en castellano de Unai Zorrilla, Octavio Hernández y Eduardo Quintás y que la editorial Krasis ha publicado. Un libro fantástico y además en castellano!

6

7

Una vez creado nuestro modelo de datos, tenemos que crear el servicio encargado de exponer nuestro dominio, para que el cliente pueda consumirlo. Este es el componente DomainServices del que hablábamos en el post anterior.

Añadiremos un nuevo elemento de tipo “Domain Service Class” y le llamaremos SuppliersService. Esta plantilla es una de las que incorpora RIA Services.

8

Una vez seleccionado este elemento, nos aparecerá este cuadro de diálogo desde el cual podemos configurar la parte del modelo de datos que queremos exponer. En este caso la cosa es sencilla, ya que sólo tenemos la entidad Suppliers.

9

Seleccionamos también la opción de permitir edición y la opción de generar las clases de metadatos asociadas. En los siguientes post entraremos a explicar para que sirve cada opción y efectos tiene seleccionar o no la opción.

Una vez realizada esta opción ya tenemos creado nuestro DomainService que expone la entidad Suppliers del model Northwind. Ahora vamos a ver cómo lo consumimos desde el cliente.

En el proyecto, en el el fichero Main.xaml vamos a añadir un componente DataGrid, que será el que muestre el listado de proveedores.

12

Una vez que tenemos el grid, en el codebehind añadiremos el código necesario para cargar en el grid el listado de proveedores.

13

Fijaros que en ningún momento he creado un proxy al servicio que expone el modelo Northwind, pero aún así, lo tenemos accesible!

Y si ejecutamos este código tendremos la lista de proveedores..

14 

y se acabó, ya tenemos nuestra aplicación RIA funcionando!

En el próximo post entraré a explicar con más detalle algunos de los aspectos que hoy he mencionado pero que no he entrado a explicar, como el código generado al crear el DomainService o cómo el cliente puede hacer uso del servicio sin haber creado un proxy previamente.

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

14 comentarios en “RIA Services: Paso a paso (I)

  1. Buenas,

    Muchas gracias por la información Ibon, me esta siendo de gran ayuda. Pero a la hora de ponerme a enredar con todo esto, tengo el problema del entorno de desarrollo, no se que componentes tengo que tener instalados en mi equipo. Podrias decirme que necesito.

    – VS 2008 o VS 2010
    – Que Framework
    – Que Tamplates para VS
    – Que Componentes

    Muchas Gracias.

  2. Para los ejemplos que estoy haciendo tengo instalado:

    Visual Studio 2008 SP1
    Microsoft .NET RIA Services July 2009 Preview
    Silverlight 3 Runtime
    Silverlight 3 SDK
    Silverlight 3 Tools

    Un saludo,

  3. Buenas tardes, encuentro interesante tu articulo, me gustaría ver un ejemplo realizando actualizaciones con los metodos insert, update, delete, dado que no encuentro en nigún lado como proceder con estos metodos, todos los post que encontre solo muestran datos.
    gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *