El Modelo Vista-Controlador es una manera de organizar el código, una arquitectura, que, teniendo por objetivo el mantenimiento más sencillo posible, distribuye en 3 grandes grupos el código fuente de una aplicación. Los grupos son:

  1. MODELO –> Representación de la información con la que trabaja la aplicación, o dicho de otra manera, la lógica de negocio.
  2. VISTA        –> Se encarga de mostrar los datos, presentar los modelos de una manera apropiada para el usuario, normalmente se denomina interfaz de usuario.
  3. CONTROLADOR –> Procesa y responde a los eventos producidos por el usuario; si para ello necesita hacer uso de modelos o vistas podrá hacerlo. Es el núcleo de la aplicación, el cerebro.

MVC

Gracias a este modelo se puede conseguir una separación total entre el código, propiamente dicho, de la aplicación y la manera o forma de representar la información generada por dicho código, y a su vez, separar la manipulación de dicha información de la lógica de negocio.

Muchos son los ejemplos de Framework MVC que existen en el mercado actualmente (tabla extraida de Wikipedia http://es.wikipedia.org/wiki/Modelo_Vista_Controlador):

Lenguaje Licencia Nombre
Ruby MIT Ruby on Rails
Ruby MIT Merb
Ruby MIT Ramaze
Java / J2ee Apache Grails
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
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 ECL Solstice
Perl GPL CGI::Builder
PHP GPL Self Framework ( php5, MVC, ORM, Templates, I18N, Multiples DB)
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
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

Como complemento.

En muchas ocasiones nos encontraremos con que el patrón MVC vendrá acompañado de un ORM (Object Relational Mapping). El trabajo realizado por un ORM consiste en convertir datos entre el sistema de tipos utilizados en el lenguaje de programación orientada a objetos y el utilizado en una base de datos relacional. Estos ORM nos harán la vida más fácil aún en el trato con la tupla información/modelo dentro del MVC.

About these ads