lunes, 25 de junio de 2012

WCF Data Services con Code First

Con el nuevo FrameWork 4.5 y Entity Framework 5.0 nos queda algo que hacer juntar el poder de estas tecnologías para usarlas con WCF Data Services.

Requisito: Necesitamos una forma de hacer que nuestra aplicaciones se mas facil de adaptarse al cambio. Necesitamos un mecanismo el cual nos permita cambiar el modelo de datos fácilmente y que esto se ínter conecte con una arquitectura distribuida y orientada a servicios.

Problema: Nuestro modelo de datos cambia continua mente y esta base de datos es utilizada por muchas aplicaciones.

Solución: El acceso a datos se puede hacer mediante servicios WCF Data services, pero como esta base de datos la acceden des de otros sistemas las entidades no tienen que ser fuerte mente tipas para eso tenemos que desacoplar el el contexto para que los dispositivos móviles no se vena cargados con referencias ajenas a la entidad. Pero también nuestra base de datos es muy cambiante solución Code Fist.

Como hacerlo: Crearemos tres proyectos en cual sera en conjunto la capa de dados, una tendrá los servicios para cada entidad, una tiene el contexto y la otra tendrá la representación de de la entidad mediante POCO.

1) Creamos un proyecto de tipo Aplicación de servicios WCF. con el nombre RyASoft.iOutlay.DataServices


2) Creamos un proyecto de tipo Biblioteca de clases con el nombre RyASoft.iOutlay.POCO


3) Creamos un proyecto de tipo Biblioteca de clases con el nombre RyASoft.iOutlay.Repository.



Cuanto tengamos los pasos 1,2 y tres creados tendríamos que ver algo como lo que esta dentro de la carpeta DataLayer como se muestra en la imagen.


4) Dentro del proyecto "RyASoft.iOutlay.DataServices" agregamos un nuevo elemento de tipo "WCF Data Service" con el nombre "FacebookDataServices".


5) En el proyecto "RyASoft.iOutlay.Repository" click derecho Entity Framework "Reverse Enginner  Code FIrst "

A) Seleccionamos nuestra base de datos para ello configuramos la conexión.


B) Tenemos que esperar unos minutos y nos generar las clases y los contextos de el modelos de datos al cual nos conectamos.

C) Movemos las clases al proyecto "RyASoft.iOutlay.POCO"


D) Modificamos en name spaces
namespace "RyASoft.iOutlay.Repository.Models" por namespace "RyASoft.iOutlay.POCO"

E) Agregamos referencia a el proyecto "RyASoft.iOutlay.Repository"


Con esto tenemos las entidades y las entidades poco listas.
Los siguiente es configurar nuestro servicio para que pueda usar esas entidades.

6) Agregamos Regencias en el proyecto "RyASoft.iOutlay.DataServices"


7) Codificamos nuestro servicio.


8) Modificamos la cadena de conexión desde el web.config de proyecto "RyASoft.iOutlay.DataServices"

Esto es para que los servicios de datos se puedan conectar a la base de datos por ultimo es publicar en IIS y probar.

9) Publicar.
Esto esta descrito en un post previo 

10) Test servicio
para este caso haremos la prueba del método GetUserByEmail.
con esta url podemos hacer el test

http://data.ioutlay.com/FacebookDataServices.svc/GetUserByEmail?email='aldoe.flores@gmail.com'


Podemos observar que en la base de datos tenemos un registro con este email. con esto queda comprado nuestro desarrollo.

Saludos
Aldo Flores
@alduar
























No hay comentarios:

Publicar un comentario