Pon un MVVM en tu vida…

… y en tu aplicación
Al crear una aplicación para Windows Phone (también se aplica para aplicaciones para Windows 8.1, WPF o Silverlight) hay que tener muchas cosas en cuenta, en mayor o menor medida, usuarios a los que va dirigida la aplicación, usabilidad, dispositivos en los que se va a ejecutar, fluidez, seguridad, etc. Pero si hay algo que hay que tener claro es que hay que utilizar MVVM.

MVVM (Model-View-ViewModel/Modelo-Vista-VistaModelo) es un patrón de diseño de sotfware de obligatorio cumplimiento al crear aplicaciones para Windows Phone, Windows 8.1, WPF o Silverlight. Vale, de acuerdo, no es obligatorio, puedes crear aplicaciones sin utilizarlo, pero con MVVM aprovechas toda la potencia que te ofrece XAML y sus bindings (enlaces), además te permite de inicio una diferenciación entre capas muy claro, si decides afinar el desarrollo de la aplicación sin añadir mucha complejidad al mismo, te permite desacoplar las capas sin un gran coste.

Implementar el patrón MVVM no es complejo (en un artículo anterior ya lo utilizamos), lo principal es tener claro los tres conceptos que definen el patrón:

1. View

Es la interfaz de usuario, lo que el usuario que utiliza la aplicación ve (cajas de texto, botones, checkboxes, etc.). Representa la información que es enviada desde el ViewModel.

2. ViewModel

Es el encargado de enviar y recoger la información del View (datos mostrados/modificados en una caja de texto), así como de realizar las acciones que se produzcan en el View (el clic de un botón).

3. Model

Representan la estructura de los datos que el ViewModel envía/recoge del View.

El siguiente paso es la implementación de la interfaz INotifyPropertyChange, tanto en los ViewModels como en las clases del modelo. Es muy sencillo implementarlo, y si se hace bien, muy fácil de reutilizar. En un futuro artículo os explicaremos paso a paso a crearlo y a utilizarlo.

Esperamos te haya parecido interesante nuestro artículo. Y como siempre, si te apetece coméntanos lo que quieras.

Hasta pronto!!