¿Cuáles son los pros y los contras de View-first vs. ViewModel-first en el patrón MVVM [cerrado]
Estoy dando una presentación sobre el uso de MVVM en aplicaciones del mundo real e incluyo una sección sobreguerras religiosas decisiones de diseño involucradas al usar MVVM como patrón en su aplicación. En una aplicación MVVM, hay dos formas principales (que yo sepa) de instanciar un nuevo par View / ViewModel:
Ver primero en el que crea una vista y crea su propio ViewModel y lo establece en su DataContext.ViewModel-First en el que crea nuevos modelos de vista y crea nuevas vistas en respuesta a los cambios en las propiedades de ViewModel, generalmente con ItemsControls y / o DataTemplates.En su experiencia, ¿cuáles son los pros y los contras de cada método? ¿Qué permiten y qué problemas encuentras con cada uno?
Resumen de los resultadosVer primero - ProsFácil de rastrear qué ViewModel es usado por una VistaVer primero - ContrasNo permite que una sola vista se use fácilmente con múltiples modelos de vistaRequiere eventos adicionales para manejar la comunicación entre Vistas y ViewModelsViewModel First - ProsPermite una prueba más completa de la lógica para abrir nuevas vistas y modelos de vistaTiende a secarse a medida que las aplicaciones se hacen más grandesView y ViewModel son más independientes y se pueden trabajar por separado más fácilmenteViewModel First - ContrasMás difícil de configurar en Silverlight sin DataTemplateSelector y DataTemplates escritos.