| Y bien, después de nuestro post de introducción, en este abordaremos como comenzar a trabajar con Ria Services para obtener los datos desde la base de datos, y como mostrarlos en nuestra aplicación Silverlight. | Indice: Introducción (Parte 1) |
‘Silverlight Business Application’ template
Lo primero que necesitamos mencionar es que el framework de Ria Services nos ofrece un template que nos entregará una solución totalmente configurada para comenzar a trabajar. Esta solución viene ya incluso con las siguientes características:
- La solución está compuesta por dos proyectos, una aplicación web y una aplicación Silverlight. La aplicación web será la encargada de la conexión y acceso a la base datos, así como la que proyectará los datos hacia la aplicación silverlight, que será la que le de vista a estos.
- La aplicación Silverlight que nos entrega esta creada sobre el framework de navegación (para leer sobre el Framework de Navegación puedes ir a estos post)
- Servicios de manejo de usuarios (membership) ya están incluido. (estos los veremos cómo usar y modificar en un post posterior)
Y bien, para poder acceder a los datos desde nuestra aplicación Silverlight, es necesario crear “en nuestra aplicación web” un modelo de datos y proyectarlos desde nuestra aplicación web con una clase de servicio de dominio.
Modelo de Datos
Lo primero que haremos es crear un modelo de nuestra base datos. Esto será, como ya lo hemos mencionado, del lado de nuestra aplicación web. En esta ocasión agregaremos un nuevo elemento del tipo ‘ADO.NET Entity Data Model’. Le pondremos por nombre ‘RIAModel.edmx’.
Esto nos lanzará un asistente. En el primer paso nos permitirá seleccionar el contenido de nuestra modelo, en esta ocasión seleccionaremos que sea generado desde una base de datos.
En el siguiente paso del asistente configuraremos los datos de conexión de la base de datos.
*Yo usaré la base de datos de Northwind que pueden encontrar en el web para su descarga.
En el tercer paso del asistente, seleccionaremos los objetos que queremos estén incluidos en modelo de datos. Además configuraremos el Namespace del Modelo.
*Para nuestros propósitos por ahora solo seleccionaremos la tabla de órdenes (Orders), y nombraremos el Namespace del Modelo como: RiaModel
Al terminar el asistente tendremos un esquema del modelo de datos como este:
Para terminar con esta parte, tendremos que compilar el proyecto. Ya que para la siguiente sección, es necesario tener nuestro modelo de datos ya disponible.
Clase de Servicio de Dominio
El siguiente paso en el que trabajaremos será el encargado de proyectar los datos desde nuestra aplicación web hacia nuestra aplicación silverlight. Y esto lo lograremos agregando un elemento del tipo ‘Domain Services Class’, el cual añadiremos a nuestro proyecto web en la carpeta llamada ‘Services’.
Al agregar este tipo de clases, nos lanzará un pequeño asistente que nos permitirá seleccionar los elementos configurados en nuestro Modelo de Datos que queremos sean proyectados por medio de un servicio, así como una opción para permitir sean editados. Además de que también nos ofrece la opción de crear las clases asociadas para los metadatos de los objetos (dedicaremos un post a este tema).
*Si no se muestra ninguno de los elementos configurados anteriormente es probable que el proyecto no fuera compilado previamente.
Los elementos que nos entregará serán un par de clases, en mi caso: RiaDomainService.cs y RiaDomainService.metadata.cs. Como lo comente, la segunda de ellas la abordaremos con mayor detalle en un post posterior. Pero de la que si necesitamos hablar es de la de RiaDomainService.cs.
Lo que podemos platicar hasta este momento de esta clase es que:
- Como podemos ver, está etiquetada con [EnableClientAccess()], ya que pedimos fuera editable.
- Nos crea 4 funciones básicas: GetOrders(), InsertOrders(), UpdateOrders() y DeleteOrders(). El típico ABC de una base de datos.
- Esta clases es 100% modificable para nuestros propósitos. Así pues por ejemplo, si quisiéramos que nuestro método GetOrders() nos regrese los registros de manera ordenada, solo bastaría modificarla de tal modo que quedaría:
public IQueryable<Orders> GetOrders()
{
return this.ObjectContext.Orders.OrderBy(o => o.OrderDate);
}
Continuará…
Ya hemos configurado nuestra aplicación web para proyectar los datos, en nuestro siguiente post ahora si comenzaremos a consumir estos datos y a mostrarlos desde nuestra aplicación silverlight…
Saludos
Tags: Ria Services, Silverlight
