domingo, 17 de febrero de 2013

Introducción al Modelo MVC y de N Capas


El modelo MVC (Modelo Vista Controlador), consta de las tres capas a las cuales hace alusión su nombre, en la Capa de Vista, tenemos nuestros formulario realizados en HTML o ASP.NET o JSP (Java Server Page) o JSF (Java Server Faces) o Razor con Helpers, este último para el caso de desarrollos con Visual Studio con el framework MVC3 o MVC4.

Recordemos que para el caso de desarrollos con Java o C#, podemos crear aplicativos stand – alone (aplicativos que dibujan sus propias ventanas o formularios y no se visualizan a través de un navegador web), conocidos también con el nombre de “aplicativos de escritorio”. Con este tipo de aplicaciones no hablamos de HTML, como tampoco de CSS (hojas de estilo en cascada), Jquery`s y controles Ajax; elementos propios de la capa de vista en aplicaciones web.

La Capa del Controlador, responde a eventos o peticiones del usuario, e invoca cambios en el modelo y muy seguramente en la vista. Es la capa central, ya que cuando desarrollamos con Visual Studio utilizando Web From, llamamos a las vistas como el punto de partida del aplicativo, con el modelo MVC el centro es el controlador, ya que al ingresar una URL (Localizador Único de Registro o dirección web), el usuario no hace referencia a una vista, sino a un controlador, quien a través de un evento o método llama o muestra la vista indicada.

La Capa del Modelo, se refiere también a las clases que conforman el aplicativo, y por ende a la información con la cual el sistema opera; además se compone por el  SGBD (Sistema Gestor de Bases de Datos), para este tendremos que agregar una capa de abstracción extra o ORM (Mapeo de Objetos Relacional), este último permite mapear objetos de forma relacional, ya que las bases de datos más utilizadas son relacionales.

Modelo a N Capas o Programación Multi - Capas, el propósito de está es hacer una desagregación más especializada de las capas antes vistas en el modelo MVC.
En este punto los desarrolladores de software se preguntan:

Número de Capas

¿Cuántas capas debo utilizar?

La verdad no hay un número definido de capas, lo más importante contar con porciones de la aplicación que se puedan modificar con facilidad sin afectar o impactar drásticamente las demás capas, facilitando de este modo la escalabilidad. También es importante conservar una alta Cohesión (los atributos y  métodos de la clase, corresponden al propósito de la misma), y bajo Acoplamiento (separación de clases o desacople de clases).
La figura 1 nos muestra la comparación de los dos modelos.



Figura 1 Comparación de los Modelos.

Como podrá observar el en la Capa Común o de Objetos del modelo a N Capas, tendremos nuestro Modelo del Dominio (los diagramas de clases), que para el modelo MVC, están en la Capad Modelo.

La Capa de Lógica o RN (Reglas del Negocio), del modelo a N Capas contiene la validación de los datos a la luz de las RN. Para  el modelo MVC, estas se encuentran en la Capa del Controlador.

La Capa de Acceso a Datos del modelo N Capas, es la que posee el ORM; el cual estará en la Capa Modelo, junto a la información del aplicativo (las clases) en el modelo MVC.

La Capa de Vista, juega el mismo papel en ambos modelos, es decir, proporcionar al usuario la interacción con el aplicativo.

Naturalmente este no es el único modelo que existe para N Capas, hay una gran variedad de combinaciones. Sì quieres ver más modelos N Capas, te aconsejo que vayas a la siguiente URL: http://jtentor.com.ar/post/Arquitectura-de-N-Capas-y-N-Niveles.aspx.

Espero que este artículo haya contribuido a tu aprendizaje.