Este artículo es el primero de
una serie de artículos en que quiero explicar mi visión de la programación por
capas.
Ilustración 1 |
Siendo
la programación en capas una arquitectura que tiene como objetivo principal separar
la capa de diseño de la de lógica, existen otros valores adicionales que
aportan a proyectos grandes entre otros como: el crear un código más
estructurado, facilita el trabajo en equipo, permitiendo que varios
programadores trabajen paralelamente en una misma funcionalidad sin
interferirse mutuamente. También se puede separar algunas de las capas de
código en diferentes servidores para balanceo de cargas, buses de datos
empresariales, etc.
En la ilustración 1 podrás
apreciar el un modelo básico de capas.
A continuación, describiré las herramientas
que usaré para elaborar el ejemplo en sus diferentes capas:
- La base de datos se elabora en SQL Server Express 2014.
- La capa de acceso a datos la desarrollaré en C#, Entity Framework y Linq.
- En la capa de entidades separaré la definición de las entidades del Entity Framework y agregaré metadatatos a los atributos.
- La capa de lógica en C#, como su nombre lo indica, colocaremos la lógica de la aplicación y uso de try/catch.
- En la capa de presentación usaré MVC, Bootstrap y JQuery.
Empecemos:
Las tablas ejemplo para la base
de datos, representan un modelo relacional para almacenar los datos de procesos,
procedimientos y diagramas de notación BPMN, los objetos del diagrama como son
los eventos, actividades, compuertas y las conexiones entre estos objetos. Uso
este ejemplo porque con él se puede representar la mayoría de las estructuras de
datos como son: maestro detalle, árboles y grafos. Además, me interesa este
tipo de modelos para ampliar el tema con otros artículos más adelante.
Creando la Base de Datos
Comencemos ingresando a SQL Management
Studio 2014, después nos ubicamos en el explorador de objetos y en la opción de
base de datos pulsamos clic derecho y usamos la opción nueva base de datos,
como se ve en la ilustración 2.
Ilustración 2 |
Una vez seleccionamos la opción
de base de datos, el SQL Management Studio 2014 abre una ventana de creación de
base de datos, en esta opción debemos darle el nombre a una base de datos y un
propietario. Para el Nombre de la base de datos usaremos “Procesos” y el
propietario de la base de datos será: “sa”.
Creación del esquema
Una vez creada la base de datos,
desplegamos el árbol de la base de datos y nos vamos a seguridad, en seguridad
ubicamos el puntero del mouse sobre Esquemas y pulsamos clic derecho y creamos
un nuevo esquema. Para el nombre del esquema usaremos “Aplicacion” y
Propietario del esquema “dbo”.
Ilustración 3 |
Creación de las Tablas
Para la creación de las tablas se
pulsa clic derecho sobre la opción de la tabla y clic en la opción Tabla, al
crear la tabla, no olvidar crear la llave, a la llave volverla un auto numérico
“Especificación de identidad” y cambiar el esquema donde vamos a crear la tabla
en la Ventana de propiedades, que accedes mediante la tecla rápida F4 o en el
menú de ver. En la ilustración 3 se puede apreciar la creación de la tabla
procesos.
Ilustración 4 |
Las tablas del ejemplo quedan así:
·
Procesos: Guarda los procesos de una empresa
·
Procedimientos: Guarda los procedimientos
asociados a un proceso.
·
Objetos: Almacena los objetos del procedimiento
(Sendas, Eventos, Actividades, Compuertas)
·
Tipos de objetos: Categoriza los objetos de los
procedimientos
·
Conexiones; Define los caminos entre los objetos
de un procedimiento (Actividades, Compuertas, Eventos).
·
Existe una relación recursiva en la tabla
objetos entre los campos IdObjeto y FK_Objeto
Creación de las relaciones
Sigue los pasos que se usaron
para crear la tabla procesos en la creación de las otras tablas y una vez estén
creadas, procedemos a crear las relaciones entre ellas, esto lo hacemos por la
opción de Diagrama en la Base de datos y creamos un nuevo diagrama, en este
agregamos todas las tablas, las organizamos y arrastramos la llave primaria a
la llave foránea para establecer la relación. Por ejemplo: Arrastramos “Drag
and Drop” entre la llave primaria de Procesos “IdProceso” y el campo “IdProceso”
en la tabla procedimiento. En la ilustración 5 se puede ver los primeros pasos
para la elaboración del diagrama de la base de datos.
Ilustración 5 |
En la ilustración 6 se ve el modelo del ejemplo ya
terminado.
Ilustración 6 |
Algunos datos de las tablas:
- Todas las tablas del modelo tienen una llave subrogada o identificador único.
- Todas las llaves subrogadas son campos enteros.
- En la tabla de procesos deje un campo Date para posteriormente agregarle metadatos y reglas de validación en la capa de entidades.
- La relación entre las tablas “Procedimientos y Objetos” y “Objetos y Conexiones” tienen la opción de borrado en cascada activado.
- Todavía no hay procedimientos almacenados, más adelante haré un ejemplo.
- Existe una relación recursiva entre IdObjeto y FKObjeto.
- La relación recursiva de Objetos, representa un árbol.
- La relación doble Objetos y Conexiones representa un grafo.
El Script para la creación del BD
lo puedes descargar aquí.
Si prefieres un backup de la base
de datos, se puede descargar aquí.
Arquitectura de N Capas: Parte 2 – La Capa de Acceso a Datos
Arquitectura de N Capas: Parte 2 – La Capa de Acceso a Datos
Para finalizar les recuerdo:
- Cada quien tiene su manera de matar pulgas, así que puede haber una gran cantidad de maneras de hacer el mismo trabajo.
- Esto es un ejemplos, así que, si tienes alguna observación, para mejorar el artículo, será bienvenida.
- No asumo ninguna responsabilidad por el uso de lo aquí expuesto.
- No olvides dejar un comentario.