Vor einigen Tagen habe ich eine Liste von MVVM Frameworks veröffentlicht. Diese Liste wurde jetzt ein wenig überarbeitet und um zusätzliche Informationen angereichert. Verfügbar ist sie nun als kleine Silverlight-Anwendung, welche die einzelnen Funktionalitäten übersichtlicher darstellt und keine bloße Auflistung mehr darstellt.
Das Mvvm Comparison Tool steht ab sofort zur Verfügung. Um diese Auflistung aussagekräftiger zu gestalten, bitte ich um Mithilfe bei der Auffindung von Fehlern, weiteren Features, die verglichen werden sollten und eventuell sogar neuen Frameworks, die aktuell fehlen.
Ebenfalls von Interesse sind Erfahrungswerte mit den einzelnen Frameworks, da ich selbst nicht alle durchgetestet habe. Wer auch immer Verbesserungs-/Erweiterungsvorschläge hat, möge sich bei mir melden oder einen kurzen Kommentar verfassen.
Das Framework Cinch von Sacha Barber ist nun in der Version 2 für [b]Silverlight [/b]und WPF verwendbar
Was ist mit Prism? Kann das nicht auch MVVM?
Eine sehr übersichtliche Liste! Danke, dass du auf meinen Vorschlag eingegangen bist.
Ich verstehe nur nicht, was mit "Commanding" gemeint ist. Ist Commanding nicht grundlegend für ein MVVM-Framework?
Interessante Erweiterungen der Liste aus meiner Sicht wären noch View-ViewModel-Bindung (ViewFirst, ViewModelFirst, Locator/Marriage, Convention oder ???), "vorhandene Dokumentation" bzw. noch besser "Lernkurve" und Popularität. Wobei man für letzteres fast eine Umfrage starten müsste, ob sich da wohl dotnet-gui, codefest und msdn-community erwärmen ließen?
Noch einige Ergänzungen:
Calcium-Lizenz: BSD;
CoreMVVM-Lizenz: MS-PL;
Silverlight.Fx-Lizenz: BSD;
WAF-Lizenz: MS-PL;
Onyx: MS-PL;
Silverlight.Fx unterstützt im neuen Release Commanding und vermutlich auch Attached Behaviors, da Nikhil Kothary dafür federführend war.
Caliburn unterstützt mit Sicherheit Attached Behaviors (und das sogar sehr häufig) und benötigt IOC, der Container kann vom Developer aber ausgesucht werden.
MVVMlight unterstützt auch Attached Behaviors, Laurent Bugnion bezeichnet sie als "EventToCommand behavior".