WINDOWS PHONE 
PATRÓN MVVM
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.
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
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
Windows Phone: Patrón MVVM 
EJEMPLO CON MVVM LIGHT TOOLKIT 
1. Podemos instalar el framework MVVM Light desde NuGet:
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.
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
Windows Phone: Patrón MVVM 
¿PREGUNTAS?

MVVM en Windows Phone

  • 1.
  • 2.
    Windows Phone: PatrónMVVM ¿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ónMVVM ¿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ónMVVM 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ónMVVM EJEMPLO CON MVVM LIGHT TOOLKIT 1. Podemos instalar el framework MVVM Light desde NuGet:
  • 6.
    Windows Phone: PatrónMVVM 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ónMVVM 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
  • 8.
    Windows Phone: PatrónMVVM ¿PREGUNTAS?