En los capítulos anteriores vimos el manejo de datos masivos por medio de colecciones como ArrayList, Queue, Stack o Dictionary, pero siempre necesitaremos controlar muchos más datos esto se logrará por medio de clases que proporciona ADO NET.
Al inicio de los capítulos se trató el tema de Clases y OBJETOS EN Net Framework 4.5 estos tenían por misión modelar una clase e Implementarla para uso dentro de una aplicación, la construcción de aplicaciones complejos lleva a la unión de estos elementos en un solo llamado programación en Capas.
La programación en capas propone dividir los elementos que compone una aplicación según las funciones que realizan, es decir, si tenemos que conectar a una base de datos juntaremos todos los objetos que tengan afinidad y los agruparemos en una biblioteca de clase llamada Capa de Datos
Se trata de tres capas como mínimo para poder implementar una aplicación y así decir que una aplicación se encuentra en Capas, tenemos
- La capa de Presentación: Es la capa que se encarga de modelar los elementos de tal manera que pueda interactuar con el usuario.
- La capa de Datos: Es la capa que se encarga de proveer de información conectada a una base de datos y mantenerla de manera adecuada durante todo el proceso de una aplicación.
- La capa lógica: Es la capa encargada de realizar toda la parte funcional de la aplicación, es decir, servirá como un puente entre la capa de presentación y las demás capas.
Cuando se habla de programación en N-Capas nos referimos a la capa Entidad que generaría la cuarta capa llamada N-Capas de la programación, si son referimos al hecho que la aplicación proviene de un análisis, entonces debemos remontarnos al Diagrama de Clases de Análisis que propone una clase llamada la Clase Entidad en donde expone las entidades que participan directamente en un proceso de la aplicación. Veamos un Diagrama de Clases de análisis como lo muestra la Imagen.
Si se analiza el diagrama notamos que existen 3 clases, la primera es la clase interfaz llamada Requerimiento Horario y Horario Consultorio estas serán implementadas dentro de la Capa interfaz o Capa de Presentación, la clase control llamada Programar Horario que nosotros la implementaremos dentro de la capa lógica o capa de Negocios y finalmente la clase entidad Horario y Consultorio que son las entidades que participan en el proceso, estas se implementarán en la capa entidad.
Estas entidades mostradas en el diagrama representarán una entidad de tabla en un motor de base de datos, mientras que la interfaz se podrá realizar en cualquier lenguaje de programación de soporte orientada a objetos como Visual Net o Java.
Entonces, la implementación de n-capas se verá de la forma como lo muestra la Imagen.
Donde la Capa de Presentación interactúa tanto con el usuario como con la capa lógica y está a su vez interactúa con la Capa de Datos y la Capa Entidad.
La Capa de presentación solicitará las funciones o procedimientos a la capa lógica, esta capa invocará las funciones de acceso a datos de la capa datos, pasando los valores por la capa entidad. Aquí se genera un problema sobre quién tendrá la responsabilidad de tener la lógica de los procesos si se necesita tener acceso a muchas entidades, para esto se hace uso de un patrón llamado DAO que permite manejar la conexión al origen de datos para obtener y almacenar información dentro de las mismas, es decir, podremos realizar consultas, insertar, actualizar o eliminar usando una clase llamada DAO.
Los beneficios del uso del patrón DAO son:
- Sirve para separar el acceso a datos de la lógica de negocio. Algo altamente recomendable en sistemas medianos o grandes, O que manejen lógica de negocio compleja.
- Encapsula la fuente de datos. Esto es especialmente beneficioso en sistemas con acceso a múltiples entradas.
- Centraliza todos los Accesos a Datos en un Capa Independiente, dependiendo de cómo se llame la entidad podría llamarse DAOCIiente en donde se podrá implementar funciones para dicha entidad.
- Cuando se trabaja con DAO los datos se encuentran desconectados de la fuente de origen, y es allí justamente donde entra la clase que por medio de objetos obtiene los valores de la entidad tanto para consultar o aplicar cualquier función de mantenimiento sobre ella.
- Entonces cuando usted ejecuta una aplicación en N-Capas, se apertura la conexión a la base de datos, se ejecuta la instrucción SQL por medio de funciones, si es una operación de lectura, se vuelca el contenido hacia una estructura de datos de NET y se cierra la conexión.