Aufbau einer Composite Application mit Prism

Divide and Conquer

Christian Eder


Mit dem Begriff „Composite Application“ werden Clientanwendungen mit einer stark modularisierten Architektur bezeichnet. Im Extremfall ist die eigentliche Anwendung nur noch eine leere Hülle, die ein Plug-in-System bereitstellt. Die Logik ist dann komplett in den Plug-ins, den so genannten Modulen, realisiert. Bei der Erstellung einer Architektur für eine Composite Application teilt man fachliche und technische Anforderungen auf diese auf. Die Module sollten dabei so zugeschnitten sein, dass möglichst geringe Abhängigkeiten zwischen den einzelnen Komponenten entstehen. Die Gesamtfunktionalität einer Anwendung wird also auf diverse, miteinander nur lose gekoppelte Teilsysteme aufgeteilt. Das hat in der Entwicklung und Wartung der Software entscheidende Vorteile:

Die einzelnen Module sind für sich genommen kleiner und leichter zu verstehen als eine monolithische Anwendung.Die Entwicklung kann hervorragend parallelisiert werden – ein Team je Modul.Durch den konsequenten Einsatz von Dependency Injection und loser Kopplung sind die Module leichter testbar.Bei richtigem Modulschnitt können Anwendungsteile leicht wiederverwendet werden.

Die Microsoft Patterns & Practices Group [1] beschreibt das Konzept Composite Application als architektonischen Ansatz zur Entwicklung komplexer Clientanwendungen, die über einen langen Zeitraum entwickelt, gewartet und erweitert werden. Das Aufsetzen einer Anwendung als Composite Application erfordert technisches Know-how und erzeugt einen initialen Aufwand. Dieser lohnt sich bei der Erstellung kleinerer Anwendungen jedoch häufig nicht. Bei komplexen Anforderungen, die sich sinnvoll in einzelne Module aufteilen lassen, eignet sich die Composite-Application-Architektur hingegen hervorragend.

Die klare Aufteilung der Anwendungslogik in mehrere Einzelteile hält sowohl die Architekten als auch die Entwickler automatisch dazu an, Abhängigkeiten zwischen verschiedenen Codeabschnitten von Beginn an zu vermeiden. Dies legt einen wichtigen Grundstein für die Erweiterbarkeit und Wartbarkeit der Software. Darüber hinaus wird der Code einfacher verständlich und erleichtert die schnelle Einarbeitung anderer Entwickler.

JavaScript ist vor allem zur Entwicklung von Webapplikationen sehr beliebt und wird seit Langem erfolgreich eingesetzt. Doch auch Developer von Mo­bile-Apps setzen die Programmiersprache zunehmend für ihre Projekte ein – in Windows 8 wird sogar ein eigenes API zur Entwicklung von Windows-Anwendungen enthalten sein. In Verbindu...

Aufbau einer Composite Application mit Prism

Divide and Conquer

Christian Eder


Mit dem Begriff „Composite Application“ werden Clientanwendungen mit einer stark modularisierten Architektur bezeichnet. Im Extremfall ist die eigentliche Anwendung nur noch eine leere Hülle, die ein Plug-in-System bereitstellt. Die Logik ist dann komplett in den Plug-ins, den so genannten Modulen, realisiert. Bei der Erstellung einer Architektur für eine Composite Application teilt man fachliche und technische Anforderungen auf diese auf. Die Module sollten dabei so zugeschnitten sein, dass möglichst geringe Abhängigkeiten zwischen den einzelnen Komponenten entstehen. Die Gesamtfunktionalität einer Anwendung wird also auf diverse, miteinander nur lose gekoppelte Teilsysteme aufgeteilt. Das hat in der Entwicklung und Wartung der Software entscheidende Vorteile:

Die einzelnen Module sind für sich genommen kleiner und leichter zu verstehen als eine monolithische Anwendung.Die Entwicklung kann hervorragend parallelisiert werden – ein Team je Modul.Durch den konsequenten Einsatz von Dependency Injection und loser Kopplung sind die Module leichter testbar.Bei richtigem Modulschnitt können Anwendungsteile leicht wiederverwendet werden.

Die Microsoft Patterns & Practices Group [1] beschreibt das Konzept Composite Application als architektonischen Ansatz zur Entwicklung komplexer Clientanwendungen, die über einen langen Zeitraum entwickelt, gewartet und erweitert werden. Das Aufsetzen einer Anwendung als Composite Application erfordert technisches Know-how und erzeugt einen initialen Aufwand. Dieser lohnt sich bei der Erstellung kleinerer Anwendungen jedoch häufig nicht. Bei komplexen Anforderungen, die sich sinnvoll in einzelne Module aufteilen lassen, eignet sich die Composite-Application-Architektur hingegen hervorragend.

Die klare Aufteilung der Anwendungslogik in mehrere Einzelteile hält sowohl die Architekten als auch die Entwickler automatisch dazu an, Abhängigkeiten zwischen verschiedenen Codeabschnitten von Beginn an zu vermeiden. Dies legt einen wichtigen Grundstein für die Erweiterbarkeit und Wartbarkeit der Software. Darüber hinaus wird der Code einfacher verständlich und erleichtert die schnelle Einarbeitung anderer Entwickler.

JavaScript ist vor allem zur Entwicklung von Webapplikationen sehr beliebt und wird seit Langem erfolgreich eingesetzt. Doch auch Developer von Mo­bile-Apps setzen die Programmiersprache zunehmend für ihre Projekte ein – in Windows 8 wird sogar ein eigenes API zur Entwicklung von Windows-Anwendungen enthalten sein. In Verbindu...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang