2016-04-25 9 views
0

Gibt es einen Rahmen, der diesen Ansatz ohne viel Aufwand erleichtert?Wie wird der ViewModel-First-Ansatz verwendet?

Es scheint, Frameworks wie MVVM Light sind mehr Sicht zuerst konzentriert.

+0

Caliburn Micro zuerst gut für VM funktioniert. Ich weiß nicht genug über die anderen. –

+0

Warum würden Sie jemals einen Viewmodel-First-Ansatz benötigen? Ein Model-First-Ansatz (d. H. Domain Driven Design) kann ich verstehen, und tatsächlich benutze ich das immer mit MVVM Lite. Aber Viewmodel-zuerst? Wenn Sie feststellen, dass es sich nicht gut mit Ihrer Business-Schicht und Ihrer DAL-Schnittstelle deckt, werden Sie nur auf Schwierigkeiten stoßen. –

+1

@MarkFeldman - hier geht es nicht um das Modelldesign, sondern um die (grafische) Zusammensetzung. –

Antwort

1

ja. Es gibt viele Frameworks MVVM-Anwendungen zu erstellen:

  • MVVM Light und Caliburn.Micro. Sie sind relativ einfach und leicht. Es würde nicht lange dauern, um aufzustehen.

  • Prism ist wirklich cooler Rahmen. Es wird jedoch mehr Zeit benötigen, um zu lernen, als die oben genannten Rahmenbedingungen. Sie können jedoch wirklich eine große Anwendung bauen, die auf Module aufgeteilt ist.

  • Catel ist nicht nur ein MVVM-Toolkit. Es enthält auch Benutzersteuerelemente und viele Enterprise-Bibliotheksklassen.

Update:

Meine Meinung ist, dass es nicht ihre Sache dieser Frameworks ist ViewModel First oder View First Ansatz zu betonen und diese Frameworks schafft keine Probleme, wenn Sie ViewModel First oder View First Ansatz. Auch wenn Sie ViewModel First Ansatz gewählt haben und Sie diesen Ansatz auf View First Ansatz ändern möchten, dann wird es keine Probleme geben.

Aus meiner Sicht sind diese Rahmenbedingungen für diese Ziele entwickelt:

  • Implementierung Vermeidung INotifyPropertyChanged (nur verwenden integrierte Implementierungen (ViewModelBase in MVVMLight und BindableBase in Prism))

  • Vereinfachte Wechselansichten zwischen Modulen (in Prism ist IRegion.RequestNavigate(...);)

  • Kommunizieren zwischen viewModels (IEventAggregator in Prism und MessengerInstance.Send(payload, token); in MVVMLight). Sie müssen Ihren Code nicht schreiben. In diesen Frameworks sind bereits getestete Codes für Sie erstellt.

  • Dependency Injection. Sie können Implementierungen von Views von ihrer ViewModels über die Schnittstelle entkoppeln.

und die obige Liste ist nicht vollständig

+0

Aber welche von ihnen betonen VM zuerst? –

Verwandte Themen