Introducción
Este sera el primero de 4 artÃculos en el que trataremos el desarrollo en capas en .net usando Entity Framework.El desarrollo en capas es muy utilizado cuando se desarrollan aplicaciones grandes como ERP
En este primer articulo veremos como generar nuestro modelo de datos .edmx de entity framework y veremos como usar DbContext Generator para generar nuestro contexto y clases poco de nuestro modelo. Cual es la finalidad de esto separa las entidades de la persistencia para poder usar estas en otras capas. Para hacer esto necesitaremos la versión ADO.NET Entity Framework 4.1 tambien necesitaremos el generador de plantillas para c# EF 4.x DbContext Generator for C# o para vb.net EF 4.x DbContext Generator for VB.NET
Lo que aremos a lo largo de todo el ejemplo sera dividir el proyecto en capas para poder notar todas las ventajas que esto aporta entre ellas reutilización de código, mejor mantenimiento de la aplicación, separación de responsabilidades etc.
La siguiente imagen muestra la estructura que tendrá nuestro proyecto final y la comunicación que abra entre las diferentes capas.
Para todo el ejemplo usare una base de datos llamada Estudiantes que tiene el siguiente diseño.
Lo primero sera crear un proyecto en blanco y agregar una biblioteca de clases llamada DataAcces.
Ahora vamos a generar el modelo de nuestra base de datos para eso agregamos un nuevo elemento y elegimos ADO.NET Entity Data Model.
Elegimos generar desde la base de datos.
Especificamos la cadena de conexión hacia la base de datos.
Ahora seleccionamos los objetos de la base de datos que queremos modelar en este caso seleccionamos las 3 tablas.
Con esto tendremos nuestro modelo de la base de datos.
Ahora vamos a generar nuestras clases poco haciendo uso del generador de DbContext. Para esto hacemos clic derecho en un espacio en blanco del modelo y elegimos Agregar elemento de generación de código.
Elegimos ADO.NET DbContext Generator(tienen que haberlo instalado antes).
Si aparece un cuadro de advertencia eligen no mostrar este mensaje de nuevo y aceptar. Esto agregara 2 plantillas(cuyos nombres terminan en .tt) a su proyecto.
La plantilla Students.Context.tt creó una clase DbContext conteniendo las colecciones de entidades y la plantilla Students.tt creó clases separadas para cada tabla.
Para que el modelo DbContext funcione necesita de la version 4.1 de entity framework(tienen que instalarlo) asà que agregaremos la dll para eso agregamos una referencia al proyecto y buscamos la dll en la ruta que se instalo que por lo general es C:\Archivos de programa\Microsoft ADO.NET Entity Framework 4.1\Binaries
Ahora lo que aremos es mover la plantilla Students.tt la que contiene las clases de cada tabla a otro proyecto biblioteca de clases en este caso llamado Entities.
Para que esta plantilla funcione ahora que lo hemos movido a una proyecto nuevo tendremos que configurar la linea que apunta hacia el modelo EDMX para eso damos doble clic en la platilla Students.tt y cambiamos la ruta de string InputFile para que apunte hacia el modelo EDMX que se encuentra en el proyecto DataAcces.
Ahora cambiaremos el espacio de nombres de la platilla Students.Context.tt ya que las clases entidades las movimos hacia el proyecto Entities tenemos que modificar el espacio de nombres de la plantilla Students.Context.tt para esto abrimos la ventana de propiedades de la plantilla y establecemos el espacio de nombres en Entities.
Por ultimo lo que tenemos que hacer es agregar una referencia del proyecto Entities en el proyecto DataAcces.
Nota: En el caso del proyecto vb.net en la clase de la platilla Students.Context.vb es necesario agregar un Imports Entities para que el contexto reconozca las clases entidad.
Con esto terminamos la primera parte de nuestro Proyecto. Lo que hemos hecho es crear el modelo de nuestra base de datos y también hemos generado el contexto y las clases entidad del modelo y también hemos separado las clases entidad en un proyecto aparte para poder usar estas clases en las demás capas, ya que como lo dije al principio la finalidad de todos esto es separar las entidades de la persistencia.
Descargar Proyecto C#
Descargar Proyecto VB.Net
Nos vemos en la segunda parte donde desarrollaremos el código que tendrá nuestra cada de datos(DataAcces).
Ver segunda parte.
Desarrollo en Capas .Net(Parte 2) - Capa de Datos
Si quieren donarme para una soda lo pueden hacer aqui.
Aspectos a considerar
- Se usara Visual Studio 2010 y Sql Express 2008.
- Se realizara con los lenguajes de C# y VB.Net.(pero solo se explicara con c#)
- Se usara la versión 4.1 de Entity Framework
- Se usara un generador de plantillas T4.
En este primer articulo veremos como generar nuestro modelo de datos .edmx de entity framework y veremos como usar DbContext Generator para generar nuestro contexto y clases poco de nuestro modelo. Cual es la finalidad de esto separa las entidades de la persistencia para poder usar estas en otras capas. Para hacer esto necesitaremos la versión ADO.NET Entity Framework 4.1 tambien necesitaremos el generador de plantillas para c# EF 4.x DbContext Generator for C# o para vb.net EF 4.x DbContext Generator for VB.NET
Lo que aremos a lo largo de todo el ejemplo sera dividir el proyecto en capas para poder notar todas las ventajas que esto aporta entre ellas reutilización de código, mejor mantenimiento de la aplicación, separación de responsabilidades etc.
La siguiente imagen muestra la estructura que tendrá nuestro proyecto final y la comunicación que abra entre las diferentes capas.
Para todo el ejemplo usare una base de datos llamada Estudiantes que tiene el siguiente diseño.
Lo primero sera crear un proyecto en blanco y agregar una biblioteca de clases llamada DataAcces.
Ahora vamos a generar el modelo de nuestra base de datos para eso agregamos un nuevo elemento y elegimos ADO.NET Entity Data Model.
Elegimos generar desde la base de datos.
Especificamos la cadena de conexión hacia la base de datos.
Ahora seleccionamos los objetos de la base de datos que queremos modelar en este caso seleccionamos las 3 tablas.
Con esto tendremos nuestro modelo de la base de datos.
Ahora vamos a generar nuestras clases poco haciendo uso del generador de DbContext. Para esto hacemos clic derecho en un espacio en blanco del modelo y elegimos Agregar elemento de generación de código.
Elegimos ADO.NET DbContext Generator(tienen que haberlo instalado antes).
Si aparece un cuadro de advertencia eligen no mostrar este mensaje de nuevo y aceptar. Esto agregara 2 plantillas(cuyos nombres terminan en .tt) a su proyecto.
La plantilla Students.Context.tt creó una clase DbContext conteniendo las colecciones de entidades y la plantilla Students.tt creó clases separadas para cada tabla.
Para que el modelo DbContext funcione necesita de la version 4.1 de entity framework(tienen que instalarlo) asà que agregaremos la dll para eso agregamos una referencia al proyecto y buscamos la dll en la ruta que se instalo que por lo general es C:\Archivos de programa\Microsoft ADO.NET Entity Framework 4.1\Binaries
Ahora lo que aremos es mover la plantilla Students.tt la que contiene las clases de cada tabla a otro proyecto biblioteca de clases en este caso llamado Entities.
Para que esta plantilla funcione ahora que lo hemos movido a una proyecto nuevo tendremos que configurar la linea que apunta hacia el modelo EDMX para eso damos doble clic en la platilla Students.tt y cambiamos la ruta de string InputFile para que apunte hacia el modelo EDMX que se encuentra en el proyecto DataAcces.
Ahora cambiaremos el espacio de nombres de la platilla Students.Context.tt ya que las clases entidades las movimos hacia el proyecto Entities tenemos que modificar el espacio de nombres de la plantilla Students.Context.tt para esto abrimos la ventana de propiedades de la plantilla y establecemos el espacio de nombres en Entities.
Por ultimo lo que tenemos que hacer es agregar una referencia del proyecto Entities en el proyecto DataAcces.
Nota: En el caso del proyecto vb.net en la clase de la platilla Students.Context.vb es necesario agregar un Imports Entities para que el contexto reconozca las clases entidad.
Con esto terminamos la primera parte de nuestro Proyecto. Lo que hemos hecho es crear el modelo de nuestra base de datos y también hemos generado el contexto y las clases entidad del modelo y también hemos separado las clases entidad en un proyecto aparte para poder usar estas clases en las demás capas, ya que como lo dije al principio la finalidad de todos esto es separar las entidades de la persistencia.
Ver segunda parte.
Desarrollo en Capas .Net(Parte 2) - Capa de Datos
Si quieren donarme para una soda lo pueden hacer aqui.
0 Comentarios