Quais são os prós e os contras do View-first vs. ViewModel-first no padrão MVVM [fechado]

Estou fazendo uma apresentação sobre o uso do MVVM em aplicativos do mundo real e estou incluindo uma seção noguerras religiosas decisões de design envolvidas ao usar o MVVM como padrão em seu aplicativo. Em um aplicativo MVVM, existem duas maneiras principais (que eu conheço) de instanciar um novo par View / ViewModel:

Ver primeiro na qual você cria uma exibição, ela cria seu próprio ViewModel e o define como DataContext.ViewModel-First em que você cria novos modelos de vista e cria novas vistas em resposta a alterações nas propriedades do ViewModel, geralmente com ItemsControls e / ou DataTemplates.

Na sua experiência, quais são os prós e os contras de cada método? O que eles permitem e quais problemas você encontra com cada um?

Resumo de ResultadosVer primeiro - ProfissionaisFácil de rastrear qual ViewModel é usado por uma ViewVer primeiro - ContrasNão permite que uma única visualização seja facilmente usada com vários modelos de vistaRequer eventos extras para lidar com a comunicação entre Views e ViewModelsViewModel First - ProfissionaisPermite um teste mais completo da lógica para abrir novos modos de exibição e modelos de exibiçãoTende a ser mais seco à medida que os aplicativos aumentamO View e o ViewModel são mais independentes e podem ser trabalhados separadamente com mais facilidadeViewModel First - ContrasMais difícil de configurar no Silverlight sem o DataTemplateSelector e o DataTemplates digitados.

questionAnswers(6)

yourAnswerToTheQuestion