Modelado en capas.

by Valeriano Tortola 14. septiembre 2007 03:45

El modelado en capas de un sistema representa como se planea dividir el código en partes lógicas ó grupos. La abstracción del código en capas permite mejorar, reparar y reemplazar partes de la aplicación de forma sencilla y sin que afecte a las demás. Además provee una representación lógica y clara de la aplicación.

El modelo en capas más comun es el de tres capas, presentación, lógica de negocio y base de datos. El model n-capas extiende este modelo de forma que cualquier capa puede dividirse en subcapas, aportando así mayor claridad.

La capa más alta es en la que se interactua con el usuario, la capa más baja donde los datos son almacenados/recuperados y las capas intermedias son las encargadas de realizar el procesado de datos, el movimiento de estos de la base de datos al usuario y el control del estado de la aplicación.

El número de capas que ha de tener una aplicación viene definido por los requerimientos de calidad de servicio, a más altos y exigentes, más capas, pero esto también aumenta el tiempo de desarrollo.

Las capas que comunmente pueden conformar una aplicación Windows son:

  • Interfaz de usuario: Provee la interfaz con la que interactua el usuario. Es responsable de obtener datos de la capa siguiente, mostrarlos, validar entradas de datos, enviarlos a la siguiente capa. Puede dividirse en:
    • Pesentación: Define únicamente la parte de presentación de la interfaz de usuario. Normalmente esta en los archivos *.Designer.cs.
    • Código de la interfaz de usuario: Donde los programadores ubican el código para interactuar con la interfaz de usuario respondiendo a eventos.
    • Código de interacción con la lógica de negocios (Business Façade): Esta capa podría usarse para separar totalmente la intefaz de usuario de la lógica de negocio, de forma que podría ser facilment substituible.
  • Capa Intermedia: Donde se ubica la lógica de negocio, aunque también suele incluir cosas como cacheo de datos, registro de actividad, gestión de errores ... etc.... Enterprise Library es un ejemplo de esto. Puede dividirse en:
    • Capa de negocios: En esta capa se ubican los objetos de dominio y sus reglas de negocio, formados por componentes carentes de estado (stateless) que trabajan con System.EnterpriseServices, objetos que son pequeños programas para procesar información, DTOs a través de Remoting, ..etc..
    • Capa de aplicación (ó Servicios de aplicación): Es la capa de mantenimiento general, se encarga normalmente de los requerimientos de calidad de servicio, como las caches, la gestión de excepciones, rendimiento, ..etc.. Enterprise Library es un ejemplo de este tipo de capa.
    • Capa de acceso a datos (ó Servicios de datos): Abstrae la obtención y almacenamiento de datos en la base de datos. Una forma de aislarse más de la Capa de datos real.
  • Capa de datos: Representa como se gestionan los datos en la base de datos a través de la aplicación. Normalmente es una base de datos relacional como SQL Server.
    • Capa de acceso a datos: Igual que la capa de datos de la base intermedia.
    • Procedimientos almacenados: Representa los procedimientos almacenados nativos ó administrados con los que se manejan datos en la base de datos.
    • Servicios de integración: Representa como la base de datos trabaja con otras fuentes de datos.
    • Tablas, logs y indices de la base de datos: Los datos en la base de datos.

Una vez definidas las capas es importante ubicarlas bien dependiendo de la arquitectura del sistema y los requerimientos. Por ejemplo, si nuestra aplicación será un SmartClient que se distribuye por internet y no puede acceder directamente a la base de datos, podemos hacer que el cliente conecte a la capa de negocios de un servidor mediante, por ejemplo, Remoting, de forma que la parte servidor pueda validar todas las entradas/salidas de la BD.

Resumen de la lección 2.2 del libro oficial de Microsoft para obtener el MCPD:WinApps.

Tags: , , ,

MCPD | WinApps

Comentarios

14/09/2007 3:47:59 #

trackback

Trackback from vtortola

Modelado en capas.

vtortola |

Comentarios no permitidos