Dentro de la serie de Windows Phone el otro día vimos como instalar las herramientas para su desarrollo, pero antes de empezar a meternos en harina lo primero que tenemos que aprender es a desarrollar con el patrón MVVM que si desarrolláis en WPF o Silverlight es el que se recomienda que utilizar y como el desarrollo de Windows Phone 7 se hace en Silverlight es importante aprenderlo. el patrón MVVM tiene una serie de ventajas, también sus desventajas que hace que sea el mas lógico a la hora de realizar desarrollos en esta tecnología
Ventajas
- Desacople de la vista y la lógica de la aplicación.
- Testeabilidad.
- Desarrollar Múltiples UI sin un coste excesivo
Desventajas
- Falta de estandarización.
- Para interfaces de usuario sencillas MVVM puede ser excesivo.
- Curva de aprendizaje.
Este patrón puede implementarse de manera fácil en SL/WPF gracias a las características de DataBinding que incorporan se compone de 3 capas perfectamente diferenciadas
- El modelo (Model). El modelo es responsable de todos los datos de la aplicación y de la lógica de negocios relacionada.
- La vista (View) o vistas. Una o más representaciones para el usuario final del modelo de la aplicación. La vista es responsable de mostrar los datos al usuario y de permitir la manipulación de los datos de la aplicación, es decir, la pantalla y solo tiene eso “pintura” nada mas
- El modelo-vista(ViewModel). Uno o más por vista. El modelo-vista es responsable de implementar el comportamiento de la vista para responder a las acciones del usuario y de exponer los datos del modelo de forma tal que sea fácil usar bindings en la vista.
Este patrón puede implementarse a mano, yo utilizo un Framework el cual he ido observando desde el principio y realmente creo que ayuda y esta maduro para su utilización, este framework es el MVVM Light Toolkit. teniendo versiones tanto para WPF, Silverlight y Windows Phone (nuestro tema) ayudando a implementar este patrón de forma sencilla.
Este “toolkit” esta realizado por Laurent Bugnion y en el ultimo Mix realizo una charla bastante interesante de el. En los siguientes posts nos dedicaremos a este “Toolkit”. Si queréis aquí hay algunos enlaces interesantes
- “Understanding the Model-View-ViewModel Pattern“ de Laurent Bugnion en el Mix 2010
- La guía de Dan Wahlin Getting Started with MVVM
- El libro de Josh Smith Advanced MVVM
En el anterior articulo vimos como se podía realizar la navegación entre páginas en un wp7, en el comienzo