Blog de programación, donde ademas de encontrar pequeños programas en C# tambien publicaré pequeñas ayudas para SQL Server

Vladimir Miranda - vladivirus666@gmail.com. Con la tecnología de Blogger.

lunes, 15 de agosto de 2016

Desarrollo en Capas (Asp.NET)


El día de hoy empiezo con este tema de desarrollo de aplicaciones en capas; para iniciar esta serie de articulos debemos tener estos puntos a considerar:
  1. Se utilizará Visual Studio 2013
  2. Se utilizará el lenguaje C# (aunque tambien se puede aplicar a Vb.NET)
  3. Se utilizará la versión 6 de Entity Framework
Para este artículo, lo primero que haremos es generar nuestro modelo de Datos *.edmx con Entity Framework (más información aquí). como habia mencionado antes, voy a utilizar Entity Framework 6, puesto que este framework (en comparación con versiones anteriores) viene cargado de nuevas características y mejoras; algunas a nivel de código y otras a nivel de rendimiento (más información aquí)..
La siguiente imagen, muestra como quedaría nuestro proyecto al final de la implementación y la comunicación que cada una de las capas tendrán entre si. La ventaja de realizar esta división será en mayor parte la reutilización de código, mejor rendimiento de la aplicación entre otros.
image
Para el ejemplo voy a utilizar una Base de Datos (BD) “Trabajador” la cual contiene las siguientes tablas:
image
Para empezar crearemos una Solución en blanco para despues añadir un nuevo proyecto de tipo Biblioteca de Clases al cual lo vamos a nombrar AccesoDatos y vamos a eliminar la clase que se genera por defecto; al final tendremos nuestra aplicación de esta manera:
image
Ahora vamos a generar nuestro modelo desde la base de datos; para ello damos clic derecho en el proyecto vamos a Agregar->Nuevo Elemento (Ctrl+Mayús.+A)
image
Una vez seleccionado, nos muestra una ventana con el asistente para Entity Data Model, en mi caso optaré por Generar desde la base de datos, ya que previamente he creado mi BD.
image
Ahora especificamos la cadena de conexión para la BD
image
Ahora escogemos la versión de Entity Framework que deseamos utilizar:
image
Ahora vamos a seleccionar las tablas que queremos incluir en el modelo
image
Al dar clic en finalizar, podremos ver nuestro diagrama de la BD y es momento de verificar que se haya generado el archivo *.tt ya que es ahi donde se encuentran las clases separadas por cada tabla.
image
image
Ahora vamos a añadir un nuevo proyecto del tipo biblioteca de clases al cual lo vamos a nombrar Entidades y lo que haremos es mover la plantilla ModeloTrabajador.tt hacia este proyecto. Para poder realizar este procedimiento, tendre que dirigirme a la carpeta donde se encuentra el Proyecto AccesoDatos y moveré todos los elementos que son parte de la plantilla ModeloTrabajador.tt hacia la carpeta donde se encuentra en proyecto Entidades
image
Actualizamos el proyecto dando clic en el botón actualizar en el Explorador de Soluciones (image). En este punto en el proyecto se nos mostrará la plantilla ModeloTrabajador.tt con una marca de color amarillo; esto nos está indicando que VS no pudo encontrar los archivos en la ruta, esto es normal.
Ahora vamos al proyecto Entidades y damos clic en Mostrar todos los archivos en el Explorador de Soluciones (image). Ahora el proyecto debe verse de la siguiente manera:
image
Eliminamos los archivos en ModeloTrabajador.tt e incluimos los archivos que movimos al proyecto Entidades; damos doble clic en la plantilla ModeloTrabajador.tt en el proyecto Entidades.
Como hemos movido la plantilla a un proyecto diferente, debemos configurar la línea que esta apuntando al modelo *.edmx, buscamos la ruta string inputFile para que apunte hacia el modelo que se encuentra en el proyecto AccesoDatos
image
Al grabar las clases que representan a las tablas volverán a quedar dentro de la plantilla ModeloTrabajador.tt
image
Ahora, vamos a regresar al proyecto AccesoDatos, y cambiaremos el espacio de nombres de la plantilla ModeloTrabajador.Context.tt y ModeloTrabajador.Context.cs, ya que, las entidades ahora se encuentran en el proyecto Entidades, abrimos la ventana de propiedades (F4 sobre la plantilla) de la plantilla ModeloTrabajador.Context.tt y establecemos el espacio de nombres en Entidades (realizamos los mismos pasos para ModeloTrabajador.Context.cs).
image
Ahora para que el proyecto AccesoDatos pueda comunicarse con el proyecto Entidades tenemos que agregar una referencia del proyecto Entidades hacia el proyecto AccesoDatos. Damos clic derecho en References y damos clic en Agregar Referencia. Vamos al apartado Solución->Proyectos y selecionamos Entidades.
image
Y esta sería la parte final de esta parte del proyecto, hasta el momento hemos creado el modelo de nuestra base de datos, el contexto y las clases de entidad; separamos las entidades en un proyecto diferente para que estas puedan ser usadas en todas las capas de acuerdo a la estructura presentada.
En los próximos días continuaré con el código que tendrá la capa de Acceso a Datos.
Descargar proyecto

0 comentarios:

Publicar un comentario

Muchas gracias en cuanto terminemos de revisar el comentario se verá reflejado en el blog