Viele Tutorials, die ich zum Thema MVVM gelesen habe, funktionieren teilweise nicht, erklären Dinge nicht richtig, etc.
Dies ist nun also mein Versuch, MVVM verständlich zu erklären.
Das ganze werde ich auf C# 4.0 und Visual Studio 2010 aufbauen.
Was ist nun MVVM und wo liegt der Unterschied zu MVC oder MVP?
Allen gemeinsam ist das M(odel) und ein V(iew). Die Logik liegt bei MVC im C(ontroller), bei MVP im P(resenter) und bei MVVM im V(iew)M(odel). Soweit sind alle schonmal recht ähnlich.
Der Unterschied offenbart sich, sobald man die Assoziationen anguckt. Bei MVC steuert der Controler sowohl View, als auch Model. Bei MVP bedingt sich nun alles gegenseitig. Das Besondere an MVVM ist nun, dass das ViewModel nicht unsere View steuert, sondern lediglich Daten für diese bereitstellt. Das ganze Funktioniert über eine Technik, die sich Data Binding nennt. Dadurch ist es möglich, eine sehr lose Kopplung zwischen den Schichten zu bekommen. Darüber hinaus ist es durch MVVM möglich, per Unit Test die GUI zu testen.
In den nächsten Artikeln werden wir uns nacheinander den drei Schichten widmen und ein einfaches Beispielprojekt erstellen.
Hey,
sehr schöner Einstieg in MVVM. Zu den Diagrammen: Es müsste die Assoziation von Presenter zu Model sowie die von ViewModel zu Model nur in eine Richtung (in Richtung Model) gehen. Anders gesagt, das Model darf das ViewModel (den Presenter) nicht kennen.
Grüße
Leif
ich häts gut gefunden wenn hier nun zu lesen wäre, wie ich denn mit VS ein MVVM project erstelle.
Ich hab VS 2012, aber diesen Projecttyp hab ich niccht zur AUswahl
Hallo Ulrich,
dieser Artikel ist nur der erste ine einer ganzen Reihe, wo Schritt für Schritt erklärt wird, wie du vorzugehen hast, um für WPF ein MVVM projekt zu erstellen. Schaue dir am besten gleich den nächsten Artikel der Serie an:
http://www.cocktailsandcode.de/2012/04/mvvm-tutorial-part-2-model/