Sonntag, 8. Dezember 2013

Modulare Anwendung mit Prism?

Da meine nächste Anwendung wieder in WPF entwickelt werden soll und diese diesmal in viele verschiedene Module aufgeteilt wird, habe ich mich auf die Suche nach Patterns und Frameworks gemacht. Schnell bin ich wieder einmal auf Prism gestoßen. Schon vor einiger Zeit habe ich mich mit dem Framework befasst, es damals allerdings als nicht passend für meine damalige Anwendung gehalten. Mit dem neuen Projekt sieht das nun anders aus!

Verschiedene Module sollen von verschiedenen Entwicklern entwickelt werden. Wichtig dabei ist mir, dass die Abhängigkeiten zwischen den Modulen bis auf's Minimum reduziert werden. Die Anwendung soll wie immer Test Driven entwickelt werden können und außerdem soll es möglich sein, dass wenn ein Modul nicht geladen werden kann, nicht die ganze Anwendung nicht benutzt werden kann, sondern alle anderen Module zur Verfügung stehen!

Die letzten Projekte wurden mit Cinch, das auf MEFedMVVM aufsetzt, entwickelt. Auf die vielen Features, die diese Frameworks mit sich bringen, möchte ich natürlich auch in den nächsten Projekten nicht verzichten müssen. Aber Sacha Barber hat sich (wie immer) auch darum bemüht und evaluiert, wie diese Frameworks miteinander harmonieren. Einen Beitrag dazu hat er auf Codeproject verfasst.

Prism legt viel Wert auf unabhängige Module und Dependency Injection, was das Testen der Software Komponenten vereinfacht. Es können verschiedene Dependency Injection Manager, wie Unity oder das im .NET Framework integrierte MEF genutzt werden. Die Entscheidung viel schnell und leicht, da ich ja weiterhin Cinch bzw. MEFedMVVM nutzen möchte.

Prism selbst ist in der Version 4 sehr gut Dokumentiert. Ich bin derzeit fleißig am Lesen und Evaluieren, ob alle meine Anforderungen erfüllt werden. Momentan sieht es aber so aus, als ob Prism genau das richtige wäre!