Modelo Vista Controlador


Modelo Vista Controlador
Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador. Nota: las líneas sólidas indican una asociación directa, y las punteadas una indirecta (por ejemplo, patrón Observer).

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. El patrón de llamada y retorno MVC (según CMU), se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.

Contenido

Historia

El estilo fue descrito por primera vez en 1979[1] por Trygve Reenskaug, entonces trabajando en Smalltalk en laboratorios de investigación de Xerox. La implementación original está descrita en Programación de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo Vista Controlador.[2]

Descripción del patrón

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

Muchos de los sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos: en líneas generales del MVC 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 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 el Controlador en paralelo, ya que ambos cumplen ciclos de vida muy distintos entre sí.

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:

  1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace, etc.)
  2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.
  3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.
  4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.
  5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

Frameworks MVC

Lenguaje Licencia Nombre
Ruby MIT Ruby on Rails
Ruby MIT Merb
Ruby MIT Ramaze
Java / J2ee Apache Grails
Java / J2ee GPL Interface Java Objects
Java / J2ee LGPL Framework Dinámica
Java / J2ee Apache Struts
Java / J2ee Apache Beehive
Java / J2ee Apache Spring
Java / J2ee Apache Tapestry
Java / J2ee Apache Aurora
Java / J2ee Apache JavaServerFaces
JavaScript GPLv3 ExtJS 4
Perl GPL Mojolicious
Perl GPL Catalyst
Perl GPL CGI::Application
Perl GPL Gantry Framework
Perl GPL Jifty
Perl GPL Maypole
Perl GPL OpenInteract2
Perl Comercial PageKit
Perl GPL Cyclone 3
Perl GPL CGI::Builder
PHP GPL Self Framework ( php5, MVC, ORM, Templates, I18N, Multiples DB)
PHP LGPL ZanPHP
PHP LGPL Tlalokes
PHP GPL SiaMVC
PHP LGPL Agavi
PHP BSD Zend Framework
PHP MIT CakePHP
PHP GNU/GPL KumbiaPHP
PHP MIT Symfony
PHP MIT QCodo
PHP GNU/GPL CodeIgniter
PHP Otra Kohana
PHP MPL 1.1 PHP4ECore
PHP BSD PRADO
PHP GNU FlavorPHP
PHP Apache 2.0 Yupp PHP Framework
PHP BSD Yii PHP Framework
PHP GPL Logick PHP Framework
PHP GPL Osezno PHP Framework
Python ZPL Zope3
Python Varias Turbogears
Python GPL Web2py
Python BSD Pylons
Python BSD Django
.NET Castle Project MonoRail
.NET Apache Spring .NET
.NET Apache Maverick .NET
.NET MS-PL ASP.NET MVC
.NET Microsoft Patterns & Practices User Interface Process (UIP) Application Block
AS3 Adobe Open Source Cairngorm
AS3 y Flex MIT License CycleFramework

Véase también

Referencias

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Modelo Vista Controlador — (MVC) es un patrón de diseño de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos de forma que las modificaciones al componente de la vista pueden ser hechas con un… …   Enciclopedia Universal

  • Osezno PHP Framework — Logo / Captura de pantall …   Wikipedia Español

  • Ruby on Rails — Captura de Rails …   Wikipedia Español

  • Grails — ? Información general Última versión estable 1.3.7 17 de febrero de 2011 Género Framework de aplicaciones web …   Wikipedia Español

  • Django — Saltar a navegación, búsqueda Para otros usos de este término, véase Django (desambiguación). Django Desarrollador Django Software Foundation …   Wikipedia Español

  • Web2py — Archivo:Web2py logo.png Desarrollador web2py developers www.web2py.com Información general …   Wikipedia Español

  • Oracle Application Development Framework — Oracle Application Development Framework, generalmente llamado Oracle ADF, es un framework comercial de Java para la creación de aplicaciones empresariales. Es una herramienta del tipo RAD que se basa en patrones de diseño listos para usar.… …   Wikipedia Español

  • ASP.NET — es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET… …   Wikipedia Español

  • Stripes — Logotipo de Stripes ? Información general Última versión estable 1.5.6 14 de marzo de 2011; hace 7 meses (2011 03 14) …   Wikipedia Español

  • Symfony — Desarrollador Sensio Labs http://www.symfony project.org/ …   Wikipedia Español


Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.