170 likes | 304 Views
Calidad de Software y patrones de diseño en Windows Phone 7.5. Luis Guerrero (lguerrero@plainconcepts.com) Senior Developer at Plain Concepts. Agenda. El patrón MVVM ( Model -View View- Model ) Testing unitario con Visual Studio 2010 Integración con Visual Studio Team Building.
E N D
Calidad de Software y patrones de diseño en Windows Phone 7.5 Luis Guerrero (lguerrero@plainconcepts.com) SeniorDeveloper at PlainConcepts
Agenda El patrón MVVM (Model-View View-Model) Testing unitario con Visual Studio 2010 Integración con Visual Studio TeamBuilding
MV-VM View Model Model View Model INotifyPropertyChanged Commands Execute PropertyChanged Binding View
Frameworks de MVVM Prism – Microsoft MVVM Light Simple MVVM Caliburn
Silverlight 4 • Windows Phone 7.5 (Mango) soporta Silverlight 4 al completo, incluyendo: • Soporte completo a comandos • Interfaz ICommand • Button tiene soporte de comandos
Implementando MVVM Podemos implementar MVVM con una clase base que implemente INotifyPropertyChanged
Demo CreandonuestrosViewModel
Testing Si queremos hacer nuestros ViewModeltesteables, podemos separar la funcionalidad que obtiene los datos del ViewModel en sí. Para conseguir esto podemos usar inversión de control (IoC) y luego hacer un mock sobre el componente que descarga los datos.
Services RssViewModel RssService IRssService Visual Studio 2010 Testing MockRssService
Moq es una librería de mocking que permite generar objetos virtuales para simular objetos durante el testing. http://code.google.com/p/moq/
Demo Descargando los datos
Testeando nuestro ViewModel Podemos usar Visual Studio para el testing de nuestros ViewModels. Silverlight 4 es compatible a nivel binario con WPF4. Podemos crear un nuevo proyecto de Testing y agregar las referencias de Silverlight al proyecto para compilar.
Demo Escribiendo test unitarios de nuestros ViewModels
Conclusiones Con Windows Phone 7.5 ya no tenemos excusa para hacer testing de nuestros ViewModels Podemos integrar el testing en Visual Studio 2010 y en TFS Build.
Gracias ¿Preguntas?