MVVM-Grundlagen für Windows Phone 7-Entwickler

Bei der Windows Phone 7-Entwicklung kommt man kaum an MVVM (Model-View-ViewModel) vorbei. Es sind nur schwer übersichtliche Informationen darüber zu finden sind, warum, wo und wann das Muster anzuwenden ist. Ein Interview mit Ginny Caughey, Windows Mobile MVP, sollte darüber Aufschluss geben. ZDNet hat die Erkenntnisse aus diesem Gespräch zusammengefasst.

Der Nutzen von MVVM

Wie viele der in letzter Zeit populären Muster trennt MVVM die verschiedenen Probleme und erleichtert das Unit-Testing. Im Zusammenhang mit einer Silverlight– oder Windows Phone 7-Anwendung entfernt es die gesamte Anwendungslogik des zugrunde liegenden Codes und verwendet diesen nur um die XAML (also die „View“) an das in einer separaten Datei befindliche View Model zu binden. Da Datenbindung verwendet wird, muss man keine umfangreichen Codes schreiben, um den UI-Content zu bevölkern, auf Benutzereingaben zu reagieren oder andere Arten von IO-Aufgaben zu bewältigen. Es ist außerdem viel einfacher, Code für die Wiederherstellung des Anwendungszustands nach Deaktivierung der Anwendung zu schreiben, da man den Datenkontext serialisieren kann.
Doch Vorsicht: Die Erfahrung zeigt, dass MVVM bei einfachen Anwendungen den Aufwand nicht lohnt. Es ist zwar an sich nicht schwer zu implementieren, aber es ist nur wenig sinnvoll, all die Dateien zu erstellen und dann mühsam die Probleme zu trennen, wenn es ohnehin nur wenig zu trennende Probleme gibt.

Die drei Teile von MVVM

Das Model enthält die Geschäftslogik. Bei einer datengesteuerten Anwendung erfolgt hier beispielsweise die Datenkonnektivität. In stärker auf Algorithmen basierenden Anwendungen sind hier die Berechnungen zu finden.
Das View Model nimmt die Informationen vom Model und wandelt sie in eine von der View verwendbare Form um. Es nimmt außerdem die Änderungen aus der View und ruft die entsprechende Funktionalität im Model auf. Es handelt sich also um einen Gateway oder eine Übersetzungsschicht zwischen dem Model und der View. Die Schnittstelle INotifyPropertyChanged ist die Lösung für die Handhabung der Bindung mit der View.
Die View repräsentiert die Benutzerschnittstelle. In einer Windows Phone 7-Anwendung wird sie mit der XAML eines Bildschirms implementiert.

MVVM Light Toolkit und Prism

Ginny Caughey zufolge sind MVVM Light Toolkit und Prism zwei hervorragende und sehr beliebte Optionen für die Arbeit mit MVVM. MVVM Light hat den Vorteil, sehr minimalistisch zu sein, was die Ressourcennutzung reduziert. Dies mag zwar bei einer Windows Presentation Foundation (WPF) oder einer Silverlight-Desktop-Anwendung zweitrangig sein, aber beim Schreiben von Windows Phone 7-Anwendungen spielt dieser Aspekt eine sehr wichtige Rolle. Sie wies außerdem darauf hin, dass in mit MVVM Light geschriebenen Anwendungen die Aktualisierung des Codes sehr einfach ist.

Der Debugging-Aspekt

Ein wichtiger Aspekt dieses Programmierungsstils ist das Debugging. MVVM arbeitet mit Event-Handling, was bedeutet, dass der Code abstrakter ist. Es besteht kein direkter Pfad von der UI zum Model. Nach einigen wenigen Anpassungen gewöhnt man sich jedoch rasch an die anderen Debugging-Muster, die keinerlei Probleme bereiten.

Ressourcen zu MVVM

Hier einige zusätzliche Ressourcen mit Informationen zu MVVM:

ZDNet.de Redaktion

Recent Posts

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

2 Tagen ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

2 Tagen ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

2 Tagen ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

2 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

2 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

2 Tagen ago