2. Windows Phone: Patrón MVVM
¿QUÉ ES MVVM?
• Es la abreviatura de Model-View-ViewModel.
• Es un patrón de diseño que permite trabajar de forma paralela al
equipo encargado del diseño de la interfaz de usuario y al equipo
encargado de implementar la funcionalidad dentro de una aplicación.
• Se utiliza habitualmente para desarrollar aplicaciones WPF, Silverlight,
Windows Phone, etc.
3. Windows Phone: Patrón MVVM
¿QUÉ ES MVVM?
Model
View
(.xaml)
Binder
Método de negocio Notificaciones
View Model
(negocio) BD
Recargar
vista
Acceso a base de datos
Servicios
(navegación,
mensajes…)
Evento
4. Windows Phone: Patrón MVVM
IMPLEMENTAR MVVM EN WINDOWS PHONE
• Podemos implementar el patrón por nuestra cuenta mediante los
objetos nativos de .NET, sin embargo, existen librerías para
ahorrarnos trabajo:
• Prism Library (Microsoft Patterns & Practices):
http://msdn.microsoft.com/en-us/library/gg490766.aspx
• MVVM Light Toolkit: http://www.mvvmlight.net
• Caliburn.Micro: http://caliburnmicro.com
5. Windows Phone: Patrón MVVM
EJEMPLO CON MVVM LIGHT TOOLKIT
1. Podemos instalar el framework MVVM Light desde NuGet:
6. Windows Phone: Patrón MVVM
EJEMPLO CON MVVM LIGHT TOOLKIT
2. Creamos la clase central encargada de localizar los modelos de vista
(ViewModelLocator).
3. Añadimos esta clase a las resources de la aplicación (App.xaml).
4. Creamos una vista base de la que heredarán todas las vistas para
centralizar el posible code-behind común. No hay que olvidar que las
vistas deben tener la menor cantidad de código posible. El negocio es
responsabilidad de cada modelo de vista.
7. Windows Phone: Patrón MVVM
EJEMPLO CON MVVM LIGHT TOOLKIT
• El resto de objetos necesarios nos los proporciona .NET (Converters,
ICommand, etc.) y MVVM Light (ViewModelBase, Messenger,
ObservableObject, RelayCommand, SimpleIoc, etc.)
• Vemos como aplicar estos objetos en los ejemplos:
• Commands
• Doble Binding de objetos
• EventsToCommands
• Servicio de navegación
• Comunicación mediante mensajes