Modelo Vista Vista Modelo

Modelo Vista VistaModelo
Información sobre la plantilla
Model mvvm.jpg
Diagrama del patrón de Arquitectura de Software, Modelo Vista VistaModelo (MVVM)
CreadorJohn Gossman
Diseñado porMartin Fowler
Lanzamiento inicial2005

Modelo Vista Vista Modelo (MVVM). Es un patrón arquitectónico usado en la ingeniería de software de Microsoft que se originó como una especialización del patrón de presentación de diseño modelo introducido por Martin Fowler.

En gran parte basado en el patrón Modelo Vista Controlador (MVC), MVVM está dirigido amodernas plataformas de desarrollode interfaz de usuario que soportanprogramación orientada a eventos, como HTML5, Windows Presentation Foundation WPF, Silverlight y el Framework ZK.

Historia

El patron Model View ViewModel fue concebido por John Gossman alrededor del año 2005 en un post de su blog titulado "Introduction to Model/View/ViewModel pattern for building WPF apps", siendo este una adaptación del patrón Presentation Model propuesto por Martin Fowlers para tecnologías .NET como XAML (como se conoce ahora al conjunto de herramientas para desarrollar en Windows 8), WPF y Silverlight.

Descripción

  • Model: El modelo, dentro de MVVM es el encargado de representar el modelo del negocio, proveyendo de esta manera la base necesaria para la manipulación de los datos de la aplicación, además parte del modelo se lo puede usar como clases POCO (Plain Old CLR Objects) para poder usarlas con Entity Framework Code First o algún otro ORM. Cabe resaltar que en el modelo, no debería de existir ninguna lógica de negocio o código que afecte a como se visualizan sus datos en pantalla.
  • View: La vista es la parte encargada de la parte visual de nuestra aplicación, no teniéndose que ocupar en ningún momento en el manejo de datos. En MVVM la vista tiene un rol activo, esto significa que en algún momento la vista recibirá o manejara algún evento (Clic en un botón, alguna tecla presionada, etc.) y tendrá que comunicarse con el modelo, para poder cumplir el requerimiento.
  • ViewModel: El ViewModel (modelo de vista en español) es el encargado de ser la capa intermedia entre el modelo y la vista, procesando todas las peticiones que tenga la vista hacia el modelo, además de tener que ocuparse de manejar las reglas del negocio, la comunicación con aplicaciones externas o consumir datos desde alguna fuente (Bases de Datos, Web Services, Sensores, etc.).

Ventajas de utilizar MVVM

Este patrón junto a otros mas conocidos como Modelo Vista Controlador (MVC) o Modelo Vista Presentador (MVP) tiene por objetivo simplificar las tareas de desarrollo y mantenimiento del software escrito con estos a través de la división de ocupaciones, por lo cual alguien que ya haya trabajado previamente con alguno de los patrones previamente mencionados, le parecerá bastante familiar MVVM.

Véase también

  1. Patrones de Asignación de Responsabilidades (GRASP)
  2. Patrones de diseño y arquitectura
  3. Modelo Vista Controlador

Fuentes

Enlaces Externos