Hola Comunidad,
Continuando con la parte previa del proyecto, Aplicación Windows Phone para la Federación Venezolana de Fútbol - Parte 2, anteriormente definimos los prototipos de cómo queríamos que la aplicación se visualizara. Para esto utilizamos SketchFlow Template for Windows Phone 7, y presentamos algunas pantallas que, incialmente no indicarán tanto los comportamientos como los datos que deseamos poder visualizar desde la aplicación móvil. Ahora, lo que haremos en esta tercera parte es trabajar sobre la base de una capa de datos básica, sobre la cuál poder formular nuestras estretgias de acceso a datos.
Para tal fin, utilizaré Microsoft SQL Server 2008 R2 Developer Edition, sin embargo, también puede utilizarse la versión Express de SQL Server 2008 R2. Iniclamente y graicas al apoyo de Eduardo Sojo, diseñé un modelo simple de la estructura de BD que requiero para almacenar los datos de los torneos de la temporada del fútbol nacional:
Diagrama inicial del modelo E/R:
Como pueden apreciar en el modelo, se crearon las siguientes entidades de datos:
Es importante explicar algunas decisiones de diseño que tomé, ya que posteriormente nos afectarán en el acceso a la información desde los componentes que se desarrollaran en la capa de integración de datos para este proyecto (los scripts de creación de los objetos estan disponible para descarga):
Con esta información lista, el siguiente paso en la construcción de una capa de acceso a datos (DAL - Data Access Layer) muy simple. Para tal fin, inició Visual Studio 2010 y abro un proyecto de tipo Console Application:
Ahora, a dicho proyecto le vamos a agregar un nuevo objeto de tipo ADO.NET Entity Data Model, le colocamos como nombre ModelFVF:
Cuando agregamos este elemento al proyecto, Visual Studio 2010 nos ofrece un asistente para configurar este modelo. El asistente solicitará la ruta, driver y tipo de base de datos hacia la cuál se hará la conexión:
Construcción de la cadena de conexión (Connection String):
Selección de los objetos de la base de datos que serán incporados al modelo del Entity Framework:
Todos los objetos incorporados:
Ahora bien, uno de los aspectos interesantes que me ofrece el Entity Framework, es la capacidad de poder incorporar al modelo, objetos personalizados provenientes de los resultados de ejecución de los procedimientos almacenados. Para esto, lo que vamos a hacer es incorporar al modelo tipos complejos que emulen el comportamiento de los datos que vamos a consumir en las capas superiores. Para esto, nuevamente nos apoyamos en Visual Studio para adicionar funciones al modelo creado:
Este proceso lo hacemos para todos los SPs, y así nos quedan los siguientes elementos en el modelo:
Al crear tipos complejos, .NET Framework resuelve su creación modificando el archivo de clases y definción de objetos (en nuestro caso FVFModel), agregando la creación de todos los tipos, como vemos en la siguiente figura:
Como pueden observar, se agrega una nueva clase parcial con el mismo nombre del tipo complejo. Esta clase define define en su constructor la creación y asignación de los parámetros de recepción de la función a propiedades definidas de la clase. Estas propiedades también se encuentran definidas en el mismo archivo de clases en la sección "Primitive Properties":
Como ven, de esta manera pueden agregar todos los tipos personalizados que ustedes deseen para sus aplicaciones. Eso si, siempre recuerden validar su modelo después de haber realizado modificaciones de esta naturaleza, ya que si el modelo se corrompe, pueden perder todo el trabajo. Para esta primera etapa del proyecto, creo que es todo. El los próximos post, estaré escribiendo sobre la capa de servicios de comunicaciones REST y su integración con la capa DAL que acabamos de crear. Por supuesto y como siempre, todos estan bienvenidos a aportar ideas, comentarios y mejoras sobre este proyecto.
Estamos en contacto!
Nestor Guadarrama
Gerente de Programas para Empresas de Desarrollo de Software