1. Universidad Andrés Bello
Escuela Tecnológica
Ingeniera en Computación e Informática
Introducción al Patrón
MVC
Esteban López Betancourt
04/Septiembre/2009
2. Introducción
Los patrones de diseño son soluciones a problemas específicos y comunes del
diseño orientado a objetos. Estas soluciones están basadas en la experiencia y se
encuentran bien documentados.
Uno de ellos es el patrón MVC, el cual separa el diseño de una solución en tres
grandes componentes principales: Modelo, Vista y Controlador. Éstos manejan los
datos de una aplicación, la interfaz de usuario y la lógica de control respectivamente.
Concepto
Patrón MVC
A alto nivel, el patrón MVC permite separar los distintos aspectos de una
aplicación (Inputs Lógicos, Lógica de Negocio, Lógica de UI), otorgando un bajo
acoplamiento entre estos elementos. Esto permite que al momento de construir una
aplicación, nos focalicemos sólo en un aspecto, como por ejemplo en un vista, sin
tener dependencia de la lógica del Negocio.
Además el desacoplamiento de sus componentes, permite que los distintos
aspectos se puedan desarrollador en paralelo. Así, un desarrollador se puede abocar a
la vista, un segundo desarrollador a la lógico del controlador y otro focalizarse en la
lógica de negocio en el modelo.
Ventajas de Usar MVC
Permite tener completo control sobre el comportamiento de una aplicación
Testear una aplicación se vuelve más fácil, al no tener que instanciar la clase
de la página individual, sus controles anidados y clases adicionales que
dependan de su uso para el testeo.
Soporta muy bien aplicaciones que requieran de un gran equipo de
desarrollo, donde se necesita un gran nivel de profundidad y
3. modularización, otorgando un completo control sobre el módulo asignado,
independiente del resto.
Componentes Patrón MVC
Modelo:
Corresponde a la parte de la aplicación que implementa la lógica del Dominio de
Datos de la aplicación, además de incorporar la persistencia de datos.
Frecuentemente, los objetos del modelo recuperan y almacenan los estados del
modelo en la base de datos. Aquí se hace el levantamiento de los objetos que el
sistema deba utilizar y es el proveedor de los recursos al Controlador
Vista:
Es el componente que despliega la interfaz de usuario de aplicación.
Normalmente (no siempre), esta UI es creada a partir de los datos del modelo (Un
ejemplo puede ser una vista de edición de una tabla de Productos que muestra
cuadros de texto, listas desplegables y casillas de verificación basado en el estado
actual de los objetos Producto). Esta puede ser una web html, un xml, un archivo
binario, etc.
Controlador:
El controlador maneja la interacción del usuario, trabaja con el Modelo, y por
último selecciona la vista a renderizar en la interfaz de usuario. En una aplicación MVC,
la vista sólo despliega información; el controlador maneja y responde los inputs e
interacción del usuario. Éste escucha los cambios a la vista y se los envía al modelo.
Un ciclo a alto nivel se desarrolla de la siguiente forma; El usuario envía
peticiones (no la vista) las cuales son recibidas por el lado servidor con el controlador,
éste sabe cómo y quién se debe comunicar del Modelo para responder ante el
requerimiento. La respuesta del controlador finalmente es una vista, o una vista
parcial.
4. Modelo de Ejecución de aplicaciones MVC
Es muy importante que conozcamos el significado de una URL en el modelo MVC.
Sabemos que comúnmente, en tecnologías como ASP.NET, existe una relación uno a
uno entre la URL y la página Es decir, si decimos www.misitio.com/mipagina.aspx , se
está haciendo referencia directamente a la página mipagina.aspx
En MVC no existe correspondencia entre la URL digitada y la página física, puesto
que la URL corresponde a una acción del controlador. Mientras una tecnología
comúnmente se centra en el contenido, una aplicación MVC está centrada en la lógica
de la aplicación.
Por ejemplo, en ASP.NET el Enrutamiento se realiza a través de una característica
del Framework ASP.NET MVC llamada Routing. Para ello utiliza una tabla dinámica que
se crea al iniciar la aplicación, que es configurada en un archivo de carácter global,
llamado Global.asax.
Aplicación
Se recomienda su aplicación en aquellos proyectos donde se contemple un gran
número de desarrolladores, y se les pueda distribuir las tareas de forma modular y
centralizada en tareas bien definidas y cuantificables.
A modo de ejemplo, para el desarrollo del Framework ASP.NET MVC 1.0, se
desarrolló un sitio completo a partir del patrón MVC. El cual se puede acceder a través
de la siguiente URL: www.nerddinner.com
Además, es posible descargar el código y el manual respectivamente desde:
http://www.codeplex.com/nerddinner
http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf
5. Fuentes de Información
Título: Una Introducción al patrón ASP.NET MVC
Url: http://oscarhf2002.spaces.live.com/blog/cns!9F94E04EE7CB70B5!364.entry
Título: Lear ASP.NET MVC 1.0
Url: http://www.asp.net/learn/mvc/#MVC_Overview
Título: Understanding Models, Views & Controllers
Url: http://www.asp.net/learn/mvc-videos/video-396.aspx
Título: Professional ASP.NET MVC 1.0
Autor: Rob Conery, Scott Hanselman, Phil Haack, Scott Guthrie
Url: http://www.tinyurl.net/aspnetmvc
Título: Patrón de Diseño
Url: http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o
Título: Patrones de Diseño, Diseño de Sw OO.
Url: http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php