MVVM Diagramm

MVVM Tutorial – Part 1 (Grundlagen)

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?

MVC Diagramm

Model View Controller

MVP Diagramm

Model View Presenter

MVVM Diagramm

Model View ViewModel

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.

3 Gedanken zu „MVVM Tutorial – Part 1 (Grundlagen)

  1. Leif Battermann

    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

  2. ulrich leutheuser

    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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.