Professional Documents
Culture Documents
devmasters.com.mx
Qu es MVVM?
Patrn de Diseo natural para plataformas de XAML
Aprovecha al mximo el Enlace de Datos {Binding}
Ventajas
Separacin de preocupaciones Pruebas Unitarias Mantenimiento de cdigo Consistencia Desacoplamiento Flujo de trabajo entre diseadores y desarrolladores Reutilizacin de cdigo y ms!
devmasters.com.mx
Model-View-ViewModel
View
ViewModel
Model
devmasters.com.mx
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.
devmasters.com.mx
Model-View-ViewModel
Vista
View
ViewModel
Define la Interfaz de Usuario Define la estructura y apariencia de lo que el usuario ve en la pantalla Estilos, Recursos UserControl, PhoneApplicationPage, DataTemplate El Contexto de Datos es el ViewModel Poco o nada de code-behind
Solo cdigo que no necesite Pruebas Unitarias
Model
devmasters.com.mx
Model-View-ViewModel
Modelo de la Vista
View
ViewModel
Model
devmasters.com.mx
Es una abstraccin de la Vista Implementa la Lgica de Presentacin Adapta el Modelo a la Vista Mantiene el estado Expone propiedades a las que se enlaza la Vista (datos y Comandos) Expone mtodos que los Comportamientos de una Vista pueden invocar Desacoplamiento y Testability es el objetivo principal
Model-View-ViewModel
View Modelo
Tu dominio Objetos de datos
DTO, POCO Modelo de datos generado Modelo de proxy generado
ViewModel
Model
devmasters.com.mx
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.
devmasters.com.mx
Model-View-ViewModel
Cardinalidad
Generalmente, una Vista tiene un ViewModel Un ViewModel puede ser usado en una o ms Vistas Un Model puede ser usado en uno o ms ViewModels
View
ViewModel
View
ViewModel
View
ViewModel
View
View
ViewModel
View
ViewModel
Model
devmasters.com.mx
Model-View-ViewModel
Estrategias para relacionar View con ViewModel
Primero la Vista (View First)
La Vista crea el ViewModel (en XAML o code-behind) La Vista tiene inyectado el ViewModel (propiedad o constructor)
devmasters.com.mx
Pensando en MVVM
Para cambiar una Vista, siempre implementas una propiedad en el ViewModel
Para deshabilitar un botn: enlaza una propiedad Para cambiar el estado de la Vista: enlaza una propiedad Para iniciar una animacin: enlaza una propiedad Para mostrar errores de validacin: enlaza una propiedad
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.
devmasters.com.mx
Pensando en MVVM
INotifyPropertyChanged Enlace de Datos
View
Comandos
ViewModel
Model
Notificaciones
Code-behind
devmasters.com.mx
Pensando en MVVM
INotifyPropertyChanged Enlace de Datos
View
Comandos
ViewModel
Model
Notificaciones
Code-behind
Pruebas Unitarias
devmasters.com.mx
Model-View-ViewModel
Recapitulando
La Vista es XAML La Vista puede tener code-behind
Solo aquel cdigo relacionado con la lgica de la IU
La Vista mantiene una referencia al ViewModel (no siempre) La Vista se enlaza al ViewModel La Vista utiliza Comandos para invocar mtodos en el ViewModel La Vista utiliza Comportamientos para invocar mtodos en el ViewModel El ViewModel mantiene una referencia al Modelo
devmasters.com.mx
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.
devmasters.com.mx
Resumen
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.
devmasters.com.mx
Preguntas?
Este documento se distribuye con una licencia de tipo Atribucin-CompartirIgual 3.0 Unported. Para ms informacin consulta http://creativecommons.org/licenses/by-sa/3.0/deed.es Microsoft, el logo .NET, Silverlight, Visual Studio, Expression Blend, Expression Studio, ASP.NET, SharePoint y Windows Phone son marcas registradas del grupo de compaas Microsoft.