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:
Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…
Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…
Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.
Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…
Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…
Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…