El
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que
separa los datos y la lógica de negocio de una aplicación de la interfaz de
usuario y el módulo encargado de gestionar los eventos y las comunicaciones.
Para ello MVC propone la construcción de tres componentes distintos que son el
modelo, la vista y el controlador, es decir, por un lado define componentes
para la representación de la información, y por otro lado para la interacción
del usuario. Este patrón de diseño se basa en las ideas de reutilización de
código y la separación de conceptos, características que buscan facilitar la
tarea de desarrollo de aplicaciones y su posterior mantenimiento.
Diagrama
de secuencia:
Pasos:
- El usuario introduce el evento.
- El Controlador recibe el evento y lo traduce en una petición al Modelo (aunque también puede llamar directamente a la vista).
- El modelo (si es necesario) llama a la vista para su actualización.
- Para cumplir con la actualización la Vista puede solicitar datos al Modelo.
- El Controlador recibe el control.
Ventajas
y Desventajas
La
popularidad de este diseño se debe mas que todo a que es mucho mas fácil
organizar aplicaciones grandes.
Las
ventajas
- Clara separación entre interfaz, lógica de negocio y de presentación, que además provoca parte de las ventajas siguientes.
- Sencillez para crear distintas representaciones de los mismos datos.
- Facilidad para la realización de pruebas unitarias de los componentes, así como de aplicar desarrollo guiado por pruebas (TDD).
- Reutilización de los componentes.
- Simplicidad en el mantenimiento de los sistemas.
- Facilidad para desarrollar prototipos rápidos.
- Los desarrollos suelen ser más escalables.
Las
desventajas:
- Tener que ceñirse a una estructura predefinida, lo que a veces puede incrementar la complejidad del sistema. Hay problemas que son más difíciles de resolver respetando el patrón MVC.
- La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de modelos más simples como Webforms.
- La distribución de componentes obliga a crear y mantener un mayor número de ficheros.
De
manera genérica, los componentes de MVC se podrían definir como sigue:
·
El
Modelo: Es la representación de la información con la cual el sistema opera,
por lo tanto gestiona todos los accesos a dicha información, tanto consultas
como actualizaciones, implementando también los privilegios de acceso que se
hayan descrito en las especificaciones de la aplicación (lógica de negocio).
Envía a la 'vista' aquella parte de la información que en cada momento se le
solicita para que sea mostrada (típicamente a un usuario). Las peticiones de
acceso o manipulación de información llegan al 'modelo' a través del
'controlador'.
·
El
Controlador: Responde a eventos (usualmente acciones del usuario) e invoca
peticiones al 'modelo' cuando se hace alguna solicitud sobre la información
(por ejemplo, editar un documento o un registro en una base de datos). También
puede enviar comandos a su 'vista' asociada si se solicita un cambio en la
forma en que se presenta de 'modelo' (por ejemplo, desplazamiento o scroll por
un documento o por los diferentes registros de una base de datos), por tanto se
podría decir que el 'controlador' hace de intermediario entre la 'vista' y el
'modelo' (véase Middleware).
·
La
Vista: Presenta el 'modelo' (información y lógica de negocio) en un formato
adecuado para interactuar (usualmente la interfaz de usuario) por tanto
requiere de dicho 'modelo' la información que debe representar como salida.
MVC y bases de datos
Muchos sistemas informáticos
utilizan un Sistema de Gestión de Base de Datos para gestionar los datos que
debe utilizar la aplicación; en líneas generales del MVC dicha gestión
corresponde al modelo. La unión entre capa de presentación y capa de
negocio conocido en el paradigma de la Programación por capas representaría
la integración entre la Vista y su correspondiente Controlador de
eventos y acceso a datos, MVC no pretende discriminar entre capa de negocio y
capa de presentación pero si pretende separar la capa visual gráfica de
su correspondiente programación y acceso a datos, algo que mejora el
desarrollo y mantenimiento de la Vista y elControlador en
paralelo, ya que ambos cumplen ciclos de vida muy distintos entre sí.
Uso en aplicaciones Web
Aunque originalmente MVC fue
desarrollado para aplicaciones de escritorio, ha sido ampliamente adaptado como
arquitectura para diseñar e implementar aplicaciones web en los principales
lenguajes de programación. Se han desarrollado multitud de frameworks,
comerciales y no comerciales, que implementan este patrón (ver apartado
siguiente "Frameworks MVC"); estos frameworks se diferencian
básicamente en la interpretación de como las funciones MVC se dividen entre
cliente y servidor .
Los primeros frameworks MVC para
desarrollo web planteaban un enfoque de cliente ligero en el que casi todas las
funciones, tanto de la vista, el modelo y el controlador recaían en el
servidor. En este enfoque, el cliente manda la petición de cualquier
hiperenlace o formulario al controlador y después recibe de la vista una página
completa y actualizada (u otro documento); tanto el modelo como el controlador
(y buena parte de la vista) están completamente alojados en el servidor. Como
las tecnologías web han madurado, ahora existen frameworks como JavaScriptMVC,
Backbone o jQuery que permiten que ciertos componentes MVC se ejecuten parcial
o totalmente en el cliente (véase AJAX).
su pagina no sirve para nada, no me ayudo
ResponderEliminar