none
MVVM? RRS feed

  • Frage

  • Hi zusammen, im Zuge der WP7 Entwicklung stolpere ich immer über das Thema MVVM. Was bedeutet das eigentlich genau für die WP7 Entwicklung?
    Auch habe ich diverse MVVM Frameworks? gefunden. Was bringt es mir eigentlich bei der WP7 Entwicklung?
    Wo liegt jetzt genau der Unterschied als wenn ich ein normales Projekt erstelle und normale Xaml Screens hinzufüge?
    Wenn ich ein neues WP7 Projekt starte, muss man gleich von Anfang an loslegen mit MVVM ?

    Edit: Wenn ich ein Simples WP7 Projekt erstelle (paar Daten von einem WCF anzeigen) , müßte man dies schon gleich mit MVVM machen? Wie sieht es mit dem Thema Wiederverwendbarkeit aus?

     

    Gruss

    Mittwoch, 21. September 2011 17:58

Antworten

  •  

    Hi Andreas,

    all zuviel kann ich dir zu diesem Thema leider auch nicht sagen, da ich erst dabei bin das Model View - View Model zu erlernen und anzuwenden. Aber durch das MVVM wird die Oberfläche von der Logik getrennt und kann unabhängig entwickelt werden. Auch wenn das Beispiel in dem Video/Windows Phone-App „Lernvideo Softwarearchitektur (MVVM)” sehr simpel ist, wurde mir dadurch klarer was es ist, wie ich das benutzen kann und wodurch die Wartung des Programms vereinfacht wird.

    Vielleicht hilft es dir auch oder einer der anderen Entwickler hat da bessere/einfachere und ausführlichere Beispiele oder Erklärungen.

    Edit: Ich habe auf zdnet.de einen Artikel dazu gefunden. Weitere Lektüren zu diesem Thema "MVVM basics for Windows Phone 7 developers", "Overview of the ModelView – ViewModel (MVVM) pattern and data-binding" und ein Video "How Do I: Use MVVM in a Windows Phone 7 Application?".

     


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    Mittwoch, 21. September 2011 20:59
  • Du musst kein MVVM verwenden, um "ein paar Daten" aus einem WCF-Service anzuzeigen. Ich rate dir aber dringend, es zu tun. Leider ist es in der Literatur meist so, dass darauf verzichtet wird, um die Beispiele einfach zu halten.

    Zu den Gründen:

    Du trennst die einzelnen Schichten sauber voneinander und klatscht nicht alles in die Code-Behind deiner Oberfläche. Das mag bei der Erstellung einer App keine Rolle spielen, macht sich spätestens bei der Codewartung bemerkbar. Da kann es dann passieren, dass du für eine Kleinigkeit alles anpassen muss, während bei sauberer Trennung nur eine Schicht betroffen wäre. Klassisches Beispiel: ein Datenbankfeld wird anders benamt: im ungünstigen Fall muss dann nicht nur die Abfrage, sondern auch die Logik und die Oberfläche anpassen.

    Verwendest du MVVM, läuft das DataBinding sauberer ab. Statt dich selbst um die Aktualisierung der Anzeige geänderter Daten oder deren Änderung in der Datensenke zu kümmern, nehmen dir die Mechanismen diese Arbeit ab.

    Stichwort Clean Code: statt bei Änderungen in den Klassen rumzumanschen, könntest du eine eigene Klasse für die Änderungen schreiben.

     

    Klar, die Lernkurve ist enorm. Ich habe auch lange gebraucht, um das Thema zu durchdringen. Und Silverlight zwingt regelrecht dazu, dieses zu tun. Aber sei versichert, es lohnt sich! Auch, wenn es anfangs nicht so scheint, du wirst im Codieren deutlich produktiver!

    • Als Antwort vorgeschlagen Horizon_Net Donnerstag, 22. September 2011 08:04
    • Als Antwort markiert Robert Breitenhofer Freitag, 30. September 2011 14:10
    Mittwoch, 21. September 2011 21:10

Alle Antworten

  •  

    Hi Andreas,

    all zuviel kann ich dir zu diesem Thema leider auch nicht sagen, da ich erst dabei bin das Model View - View Model zu erlernen und anzuwenden. Aber durch das MVVM wird die Oberfläche von der Logik getrennt und kann unabhängig entwickelt werden. Auch wenn das Beispiel in dem Video/Windows Phone-App „Lernvideo Softwarearchitektur (MVVM)” sehr simpel ist, wurde mir dadurch klarer was es ist, wie ich das benutzen kann und wodurch die Wartung des Programms vereinfacht wird.

    Vielleicht hilft es dir auch oder einer der anderen Entwickler hat da bessere/einfachere und ausführlichere Beispiele oder Erklärungen.

    Edit: Ich habe auf zdnet.de einen Artikel dazu gefunden. Weitere Lektüren zu diesem Thema "MVVM basics for Windows Phone 7 developers", "Overview of the ModelView – ViewModel (MVVM) pattern and data-binding" und ein Video "How Do I: Use MVVM in a Windows Phone 7 Application?".

     


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    Mittwoch, 21. September 2011 20:59
  • Du musst kein MVVM verwenden, um "ein paar Daten" aus einem WCF-Service anzuzeigen. Ich rate dir aber dringend, es zu tun. Leider ist es in der Literatur meist so, dass darauf verzichtet wird, um die Beispiele einfach zu halten.

    Zu den Gründen:

    Du trennst die einzelnen Schichten sauber voneinander und klatscht nicht alles in die Code-Behind deiner Oberfläche. Das mag bei der Erstellung einer App keine Rolle spielen, macht sich spätestens bei der Codewartung bemerkbar. Da kann es dann passieren, dass du für eine Kleinigkeit alles anpassen muss, während bei sauberer Trennung nur eine Schicht betroffen wäre. Klassisches Beispiel: ein Datenbankfeld wird anders benamt: im ungünstigen Fall muss dann nicht nur die Abfrage, sondern auch die Logik und die Oberfläche anpassen.

    Verwendest du MVVM, läuft das DataBinding sauberer ab. Statt dich selbst um die Aktualisierung der Anzeige geänderter Daten oder deren Änderung in der Datensenke zu kümmern, nehmen dir die Mechanismen diese Arbeit ab.

    Stichwort Clean Code: statt bei Änderungen in den Klassen rumzumanschen, könntest du eine eigene Klasse für die Änderungen schreiben.

     

    Klar, die Lernkurve ist enorm. Ich habe auch lange gebraucht, um das Thema zu durchdringen. Und Silverlight zwingt regelrecht dazu, dieses zu tun. Aber sei versichert, es lohnt sich! Auch, wenn es anfangs nicht so scheint, du wirst im Codieren deutlich produktiver!

    • Als Antwort vorgeschlagen Horizon_Net Donnerstag, 22. September 2011 08:04
    • Als Antwort markiert Robert Breitenhofer Freitag, 30. September 2011 14:10
    Mittwoch, 21. September 2011 21:10
  • Hallo Andreas2 Kammann,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Freitag, 30. September 2011 14:10