Interview zum .NET Architecture Camp

Architekturen müssen flexibler werden
Kommentare

Mobile Szenarien stellen auch neue Anforderungen an Anwendungsarchitekturen, denn diese müssen heutzutage zunehmend flexibler gestaltet werden. Wie das funktioniert, werden Christian Weyer (thinktecture) und Jörg Neumann (Acando) in ihrem End-to-End-Workshop „Flexible Smart-Client-Architekturen für .NET-Desktop-Entwickler“ auf dem .NET Architecture Camp erklären. Uns haben sie bereits im Vorfeld einige Fragen beantwortet.

Windows Developer: In eurem Workshop auf dem .NET Architecture Camp zeigt ihr .NET-Desktop-Entwicklern, wie sie flexible Smart-Client-Architekturen entwickeln können. Wodurch zeichnet sich eine flexible Architektur aus?

Neumann/Weyer: In unseren Augen definiert sich eine flexible Architektur in der heutigen Zeit dadurch, dass Entwickler mit geringem Aufwand die existierende Anwendung oder deren Bestandteile erweitern können bzw. neue hinzufügen können, ohne die ursprünglichen Komponenten anfassen oder gar ändern oder neu schreiben zu müssen. Das gilt sowohl für die Umsetzung von Client-Anwendungen als auch für die Implementierung der Server-Teile und natürlich vor allem für die Gesamtarchitektur bei verteilten Anwendungsszenarien.

Windows Developer: Wieso wird es heutzutage immer wichtiger, dass Architekturen flexibel gestaltet sind?

Neumann/Weyer: Prinzipiell sehen wir zwei große Treiber, die flexible Architekturen notwendig werden lassen. Zum einen ist das der erhöhte Druck von der Anforderungsseite her: Immer mehr muss in immer kürzeren Zyklen realisiert werden. Das geht oftmals einher mit einer agilen Denk- und Herangehensweise und da zahlt sich eine von vorneherein gut durchdachte Architektur immer wieder aus. Zum anderen sind es die technischen Treiber, die jeder von uns in der Hosentasche oder im Rucksack hat. Die Entwicklung des Mobilmarktes bedingt, dass heutige Software darauf ausgelegt ist (oder vorbereitet wird), mit Plattformen auch jenseits von Windows und von .NET zu funktionieren. Was heute noch eine reine WPF-Anwendung ist, muss morgen schon durch eine HTML5-Web-Applikation oder eine mobile Tablet-Variante begleitet werden.

Flexible Architekturen mit .NET-Technologien

Windows Developer: Wie geht man an die neuen Anforderungen mit .NET-Technologien wie ASP.NET Web API, SignalR, Entity Framework und der Windows Identity Foundation heran?

Neumann/Weyer: Die Grundidee ist nicht neu: Denken in und Schneiden von fachlichen Diensten (Services) – aka Service-Orientierung. Das haben wir schon die letzten Jahre, ja fast Jahrzehnte propagiert. Vermutlich zeichnen wir bei verteilten Anwendungsarchitekturen seit vielen Monden die immer wieder gleichen oder zumindest ähnlichen Diagramme, nur ändern sich die technischen Ausprägungen, Protokolle, Formate und Programmier-APIs. Mit Web API und SignalR haben wir eine moderne und leichtgewichtige Combo zur interoperablen Kommunikation zwischen beliebigen Anwendungen und Services. Mit Entity Framework wird ein Großteil des Datenzugriffs vereinfacht und mit WIF & Co. lassen sich diese Services & Applikationen entsprechend sicher gestalten.

Windows Developer: Euren Beispielclient aus dem Workshop entwickelt ihr nach dem „Composite Application“-Pattern. Worum handelt es sich hierbei?

Neumann/Weyer: Der Grundgedanke ist eine Architektur, die vollständig modular aufgebaut ist und bei der alle Teile – sowohl fachliche Anwendungsblöcke als auch Oberflächenelemente und technische Services – keine Abhängigkeiten zueinander haben. So werden beispielsweise die fachlichen Module der Anwendung vollständig voneinander isoliert und finden erst zur Laufzeit zusammen. Die Kommunikation zwischen den Teilen findet hierbei über fest definierte Schnittstellen statt. Das erhöht nicht nur die Testbarkeit, sondern vor allem die Wartbarkeit der Anwendung. Das Composite Application Pattern dient hierbei als ein abstraktes Architekturmuster – bei der Implementierung kommen Techniken wie Dependency Injection, MVVM und Messaging zum Einsatz.

>> Hier können Sie sich für das .NET Architecture Camp anmelden <<

Windows Developer: Welche Vorteile bringt dieses Pattern im Vergleich zu anderen Ansätzen?

Neumann/Weyer: Das Composite Application Pattern macht sich insbesondere in großen Anwendungen mit langer Lebenszeit bezahlt. In solchen Projekten werden im Laufe der Zeit immer wieder Erweiterungen implementiert, die Auswirkungen auf die vorhandenen Programmteile haben können. Bei Composite Applications versucht man diese Wechselwirkungen durch konsequente Entkoppelung zu vermeiden. Ein schöner Nebeneffekt dieser Architektur ist die leichtere Portierbarkeit der Anwendungen auf andere Plattformen, da sich die fachlichen und technischen Aspekte besser voneinander trennen lassen.

© Jörg Neumann

Jörg Neumann ist Principal Consultant bei der Acando GmbH in Hamburg, Associate bei thinktecture und Microsoft MVP im Bereich Client App Dev. Er entwickelt seit über zehn Jahren Software im Microsoft-Umfeld und berät Firmen im Bereich Client- und Datenbanktechnologien. Sein Wissen vermittelt er regelmäßig in Artikeln, Büchern und als Referent auf Entwicklerkonferenzen. Sie erreichen ihn über www.Acando.de, www.thinktecture.com oder seinen Blog headwriteline.blogspot.com.

© Christian Weyer

Christian Weyer besitzt jahrelange Erfahrung in der Konzeption und Umsetzung verteilter Anwendungsarchitekturen. Mit seiner Firma thinktecture unterstützen er und seine Kollegen Architekten und Entwickler im Projektumfeld von Windows, .NET, Cloud-, Web- und mobilen Lösungen. Seine pragmatischen Ansichten über Architektur und verteilte Anwendungen werden in der internationalen Community im Rahmen von Konferenzvorträgen, User-Group-Treffen, Podcasts oder Blogeinträgen geschätzt. Viele Kunden haben sich bereits in seine helfenden Hände begeben. Christian Weyer ist u. a. Microsoft Most Valuable Professional (MVP) für Windows Azure [Architecture].

Aufmacherbild: a blue flexible pencil on a white background von Shutterstock / Urheberrecht: strannik72

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -