MVC: Modelo Vista Controlador

Categoria : Diseño Web, Informatica, Programacion · Por Mar 27th, 2012

Después de disfrutar de una deliciosa taza de cafe y escuchar un poco de musica Reggae, me dispongo a escribir sobre el Modelo Vista Controlador (MVC), cuyos orígenes datan desde 1979 cuando Trygve Reenskaug implemento esta metodologia en Xerox PARC. Desde que inicie como programador web he utilizado este patron de arquitectura para desarrollar aplicaciones, ya que posee multiples ventajas las cual mencionare a medida vaya explicando sobre el MVC.

Que es Modelo Vista Controlador?

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), muy común en el desarrollo de aplicaciones web, donde la vista actua como un documento 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 (Oracle, MySQL, entre otros.) y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.

Elementos que involucran el Modelo Vista Controlador:

Como pueden visualizar en la imagen de esta entrada, existen tres elementos que componen el Modelo Vista Controlador, a continuación una breve definició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.

Se utiliza Actualmente?

Claro, por cierto muy de moda, a continuación enumerare algunos frameworks que utilizan esta metodología:

Lenguaje Licencia Nombre
Objective C Apple Cocoa
Ruby MIT Ruby on Rails
Ruby MIT Merb
Ruby MIT Ramaze
Java Apache Grails
Java GPL Interface Java Objects
Java LGPL Framework Dinámica
Java Apache Struts
Java Apache Beehive
Java Apache Spring
Java Apache Tapestry
Java Apache Aurora
Java 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 BSD 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
PHP MIT (sPHPf) Simple 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

Beneficios del Modelo Vista Controlador

  • Facil
  • Flexible
  • Separación de elementos (Datos–>Implementación–>Interfaz)
  • Ahorro de recurso tiempo, muy vital en una organización.
  • Reutilizar de código.

Por ultimo te comento que si tienes amplios conocimientos en el area, puedes aventurarte a crear tu propio framework basado en el Modelo Vista Controlador, como en el siguiente video (ingles), por cierto la persona que esta desarrollando el framework esta utilizando el lenguaje PHP, tu puedes utilizar el lenguaje que te sientas mas comodo:

Fuente: Wikipedia

SHARE :

Acerca de - @jdiazhn

Desarrollador Web / IT / Telecom, viviendo actualmente en isla de Roatan en el atlántico de Honduras. Amante del buen fútbol, asados y temas relacionados con Tecnologías de la Información (IT).