Was sind die Vor- und Nachteile von View-first vs. ViewModel-first im MVVM-Muster [closed]

Ich halte einen Vortrag über die Verwendung von MVVM in realen Anwendungen und füge einen Abschnitt über diereligious wars Designentscheidungen, die bei der Verwendung von MVVM als Muster in Ihrer Anwendung getroffen werden. In einer MVVM-Anwendung gibt es zwei Hauptmethoden (die mir bekannt sind), um ein neues View / ViewModel-Paar zu instanziieren:

View-First, in dem Sie eine Ansicht erstellen, und es erstellt sein eigenes ViewModel und legt es auf seinen DataContext fest. ViewModel-First, in dem Sie neue Ansichtsmodelle und neue Ansichten als Reaktion auf Änderungen in ViewModel-Eigenschaften erstellen, normalerweise mit ItemsControls und / oder DataTemplates.

Ihrer Erfahrung nach, was sind die Vor- und Nachteile jeder Methode? Was ermöglichen sie und auf welche Probleme stoßen Sie jeweils?

ErgebniszusammenfassunView First - ProfisEinfach zu verfolgen, welches ViewModel von einem View @ verwendet wiView First - Nachteile Ermöglicht nicht die einfache Verwendung einer einzelnen Ansicht mit mehreren ViewModels Erfordert zusätzliche Ereignisse für die Kommunikation zwischen Views und ViewModelsViewModel First - ProfisErmöglicht ein vollständigeres Testen der Logik zum Öffnen neuer Views und ViewModels Neigt dazu, trockener zu sein, wenn die Anwendungen größer werdenView und ViewModel sind unabhängiger und können einfacher separat bearbeitet werdenViewModel First - NachteileMehr schwierig in Silverlight einzurichten, ohne DataTemplateSelector und typisierte DataTemplates.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage