Inzwischen gibt es einige Frameworks für MVVM, besonders in Verbindung mit WPF und C#. Besonders einfach möglich ist dies mittels Cinch, welches wiederum MEFedMVVM nutzt. Die Links zu diesen beiden Projekten befinden sich am Ende dieses Posts. Diese Frameworks sind zum Einen kostenlos nutzbar und zum Anderen sehr gut dokumentiert. Außerdem steht eine entsprechend große Community hinter diesen Frameworks, die bei Fragen sehr gut unterstützt (natürlich sollte man hier am Besten Englisch beherrschen, aber dies ist in der Softwareentwicklung so oder so Grundvoraussetzung). Aber was genau sind dies für Frameworks? Weiterlesen
Schlagwort-Archive: mvvm
Der Weg zum eigenen MVVM-Framework – Part 4 (Einbindung der Services-Funktionalität)
Weiter geht es mit unserer Reihe zum eigenen Framework. Dieses Mal kümmern wir uns um die Einbindung unserer Service-Funktionen. Also quasi das Registrieren, das rückgängig machen einer Service Registration sowie das holen von Services. Aber zunächst einmal sollten wir klären, was ein Service ist. Ein Service ist ein Dienst, welcher innerhalb einer gewissen Gültigkeits-Reichweite definiert wird. In diesen Fall sind die Services alle für die Applikation und auch nur innerhalb dieser sichtbar. Hierbei sollte man wissen, dass dies bei unserer Umsetzung nicht mehr darstellt als eine Interface gesteuerte Singleton Sammlung unserer Klassen. Auch wird dies nun das Komplexeste, was unser Framework bisher zu bieten hat. Erneut werden wir wieder so vorgehen, das zunächst die Definitionen erfolgen anschließend die Tests und zum Abschluss die Implementierung. Ebenfalls sollte beachtet werden, dass das Wissen aus diesen Part noch relevant sein wird in zukünftige Parts. Aber nun gut lasst und das proggen beginnen!
Weiterlesen
Der Weg zum eigenen MVVM-Framework – Part 3 (Einbindung der Core-Funktionalität)
Dieses Mal wollen wir uns darum kümmern, die noch offene Kern-Funktionalität komplett einzubinden. Dies wäre jedoch für die erste Version dieses Frameworks lediglich eine Klasse welche die Standard.NET-String-Klasse um einige Funktionen erweitert. Aber nichts des so trotz lasst und damit beginnen, den auch diese Klasse will erst mal geschafft sein! Beginnen wir also erneut damit, zunächst die Ordner Struktur festzulegen, in welcher unsere Klasse einmal liegen soll.Anschließend werden wir wieder die leere Klasse definieren. Wenn dies auch geschehen ist, wird es aufgrund des Grey-Box-Testverfahren dazu übergehen, die UnitTests zu implementieren. Und zu guter Letzt wird natürlich wieder die eigentliche Funktionalität implementiert. Nun gut, also lasst uns beginnen!
Weiterlesen
Der Weg zum eigenen MVVM-Framework – Part 2 (Implementierung bestehender Funktionen)
In diesen Part kümmern wir uns um die Einbindung der bereits im Blog entstanden Funktionen (ViewModel, ExtendedPropertyBase sowie PropertyChangedBase). Um hierbei den Grey-Box-Verfahren zu entsprechen, werden zunächst alle Grundgerüste der Reihe nach angelegt, anschließend die UnitTests und erst dann die Implementierung der Funktionalität. Beginnen wir mit der Definition, was sinnvoll zu testen ist. Zunächst ist es natürlich Sinnvoll unsere beiden Property-Klassen “PropertyChangedBase” sowie “ExtendedPropertyBase” nahezu vollständig zu testen (AusnahmeDispose). Aber was ist mit unserer ViewModel-Klasse? Hier finde ich, sind Tests un-sinnvoll Die nötigen Tests wären aufgrund der Asynchronität komplex und da wir nur fertige .NET-Funktionen direkt aufrufen, ist das testen auch nahe zu unsinnvoll. Weiterlesen
Der Weg zum eigenen MVVM-Framework – Part 1 (Projektstruktur)
Im ersten Schritt auf dem Weg zum eigenen MVVM-Framework liegt neben der Planung auch schnell die Projektstruktur. In diesen Tutorial werde ich jedoch die bereits erledigte Planungsphase Stück für Stück mit den passenden „Tutorial“-Part veröffentlichen. Auch möchte ich darauf Hinweisen, dass es Hilfreich ist folgende Posts zunächst zu lesen, bevor Ihr mit diesen fortfahrt:
- Model-View-ViewModel (MVVM)
- Test-getriebene Entwicklung
- PropertyChanged – Kompakt und Komplett!
- Propetys mal ganz anders
- Falscher Thread? Kein Problem!
Bitte beachtet hierbei das ebenfalls bereits ein Grundverständnis für C# und .NET Framework bestehen sollte. Hier reichen allerdings Grundkenntnisse. Nun gut, fangen wir an mit unserer Projektstruktur.
Zunächst einmal hätten wir da unseren Aufbau. Dieser ist das Elementarste überhaupt im Framework, den nur wer weiß wo sich was befindet kann auch damit Arbeiten. Zunächst habe ich mir deshalb darüber Gedanken gemacht, welche Projekte es geben soll und wie diese zusammenhängen. Siehe hierfür die folgende Grafik.
Nun gut, was haben wir hier also nun. Weiterlesen