MVVMC, oder vielleicht MVC+, scheint ein praktikabler Ansatz sowohl für die Unternehmens- als auch für die schnelle Anwendungsentwicklung zu sein. Es ist zwar schön, die Benutzeroberfläche von der Geschäfts- und Interaktionslogik zu trennen, aber das "reine" MVVM-Muster und die meisten verfügbaren Beispiele funktionieren am besten mit einzelnen Ansichten.
Ich weiß nicht, wie es bei Ihnen aussieht, aber die meisten meiner Anwendungen enthalten Seiten und mehrere (wiederverwendbare) Ansichten, so dass die ViewModels bis zu einem gewissen Grad interagieren müssen. Die Seite als Controller zu verwenden, würde den Zweck des MVVM völlig zunichte machen, so dass ein Verzicht auf einen "VM-C"-Ansatz für die zugrunde liegende Logik zu nun ja herausfordernden Konstrukten führen könnte, wenn die Anwendung reift. Selbst in VB-6 haben die meisten von uns wahrscheinlich aufgehört, Geschäftslogik in das Button-Ereignis zu kodieren, und angefangen, Befehle an einen Controller weiterzuleiten, oder? Ich habe mir vor kurzem viele neue Rahmenwerke zu diesem Thema angesehen; mein Favorit ist eindeutig der Magellan-Ansatz (bei codeplex). Viel Spaß beim Kodieren!
http://en.wikipedia.org/wiki/Model_View_ViewModel#References
88 Stimmen
Beachten Sie, dass MVVM zwar von Microsoft geprägt wurde, aber auch viele Entwickler und Projekte außerhalb von Microsoft begonnen haben, dieses Muster zu übernehmen. Dieser Kommentar wurde Ihnen von der Abteilung "spite-the-MS-haters" zur Verfügung gestellt.
3 Stimmen
Nachdem ich lange Zeit mit MVVM gearbeitet habe, war meine erste Begegnung mit MVC frustrierend, bis ich lernte, dass ich ViewModels mit Hilfe von Bindungstechniken, die in MVVM zu finden sind, hin und her an den Browser übergeben kann. Aber wie Joel oben sagte, ist der einzige Weg, um den Zustand vom Browser zurückzubekommen, das Posten der Änderungen in einem Formular (das Name/Wert-Paare verwendet). Wenn Sie diesen Punkt nicht gut verstehen. Sie werden eine harte Zeit in MVC haben. Betrachten Sie den Controller einfach als einen Dependency Injector für die View und Sie sind bereit.
6 Stimmen
Eine solche Frage zu hochrangigen [Entwurfsmustern]. Ich würde gerne die Verwendung von Diagrammen in den Antworten vorschlagen.
1 Stimmen
Außerdem wurde die Frage umformuliert, um der Tatsache Rechnung zu tragen, dass die Frage im Zusammenhang mit Microsoft-Technologien gestellt wird... obwohl die akzeptierte Antwort irgendwie nicht stimmt.
5 Stimmen
Hier ist eine archivierte Version von Joels Artikel: web.archive.org/web/20150219153055/http://joel.inpointform.net/
4 Stimmen
Anders als bei der MVC-Methode ist das ViewModel kein Controller. Stattdessen fungiert es als Binder, der Daten zwischen View und Model bindet. Während das MVC-Format speziell darauf ausgelegt ist, eine Trennung von Modell und Ansicht zu schaffen, ist das MVVM-Format mit Datenbindung speziell darauf ausgelegt, dass Ansicht und Modell direkt miteinander kommunizieren können. hackernoon.com/