Speaker

Roland König

Roland König

Freier Softwarearchitekt, Trainer und Berater

Erlangen, Germany

Roland König ist freier Softwarearchitekt, -Entwickler und Berater. Er ist seit 2007 in der Welt von C# / .NET zuhause, beschäftigt sich seit 2012 intensiv mit aktuellen Trends im Umfeld moderner Softwarearchitektur und durfte ab 2017 Erfahrungen als Teamleiter sammeln. In 2021 hat er sich für den Wechsel in die Selbstständigkeit entschieden und bietet seitdem Dienstleistungen im Umfeld der Softwarearchitektur und Softwareentwicklung an. Er engagiert sich ebenso stark in der Software-Community als Sprecher auf Konferenzen, Blogger, Entwickler für OpenSource-Projekte und als Co-Organisator des DCN (Digital Craftsmanship Nordoberpfalz).

Hexagonale Architektur mit ASP.NET Core

Zur Strukturierung von Software existiert eine Vielzahl von Architekturmustern. Unter dem Begriff Clean Architecture lassen sich mehrere davon zusammenfassen, welche sich zwar im Detail unterscheiden, beim Ziel allerdings auf das gleiche setzen: Trennung von Verantwortlichkeiten. Im Ideal wird dadurch eine Software erreicht, die sich langfristig einfach warten und erweitern lässt.

In diesem Vortrag möchte ich neben den allgemeinen Prinzipien der Clean Architecture ebenso anhand des Architekturmusters „Hexagonal Architecture“ ins Detail gehen. Über ein Praxisbeispiel werden wir zudem Vor- und Nachteile dieser Vorgehensweise diskutieren. Der Code wird in C# / ASP.NET Core sein, die Gedanken dahinter lassen sich aber auch auf andere Programmiersprachen und Frameworks übertragen.

Von WPF zum Cross-Platform UI Framework Avalonia

WPF galt lange Zeit als Standard, wenn es um die Entwicklung von (Windows) Desktop-Applikationen mit C# ging. Selbst heute ist das Framework trotz der geringen Weiterentwicklung durch Microsoft und der Plattformbindung an Windows noch sehr beliebt. Dabei ist es höchste Zeit, über mögliche Alternative Frameworks nachzudenken. Diese können als Ziel einer Migration von bestehenden Applikationen oder als Basis für neue Applikationen verwendet werden.

Eine dieser Alternativen ist das Cross-Platform UI Framework Avalonia. Es weißt sehr viele Ähnlichkeiten zu WPF auf. Es setzt ebenso auf Xaml, bevorzugt das MVVM-Pattern, bringt einen visuellen Designer mit und lässt sich über Styles individuellen optischen Bedürfnissen anpassen. Daneben läuft es stabil auf allen gängigen Desktop-Plattformen (Windows, Linux, macOS) und unterstützt auch Android, iOS und Browser (via WebAssembly). Zudem bringt es verschiedene Verbesserungen gegenüber WPF mit wie etwa ein CompiledBinding.

In diesem Vortrag möchte ich auf die Unterschiede zwischen WPF und Avalonia eingehen und zeigen, wie WPF-Entwickler einen leichten Einstieg ins Framework finden. Ebenso bringe ich verschiedene Beispiel-Applikationen mit, mithilfe derer wir uns mit Vor- und Nachteilen des Frameworks auseinandersetzen können.

Moderne Service-zu-Service Kommunikation mit gRPC

Technologien zur Service-zu-Service Kommunikation gibt es viele. SOAP Webservices galten lange Zeit als Standard. Heute haben sich in den allermeisten Anwendungsszenarien REST oder zumindest REST-artige Webservices durchgesetzt. Das durch Google entwickelte gRPC ist eine jüngere Alternative zur Service-zu-Service Kommunikation und ist in vielen Sprachen und Frameworks verfügbar. Das Protokoll basiert auf HTTP (mindestens Version 2), setzt auf ein Contract-first Entwicklungsmodell, ermöglicht bidirektionale Kommunikation zwischen zwei Services, reduziert die Last auf dem Netzwerk mittels binärer Serialisierung und bringt noch viele weitere Vorteile.

In diesem Vortrag durchlaufen wir eine Einführung in gRPC und schauen uns die Unterschiede zu REST-Webservices und SOAP-Webservices an. Zudem diskutieren wir Vor- und Nachteile von gRPC, welche vor dem praktischen Einsatz von gRPC bekannt sein sollten. Die Beispiele werden überwiegend in C# sein.

Clean Architecture und Microservices

Zur Strukturierung von Software existiert eine Vielzahl von Architekturmustern. Unter dem Begriff Clean Architecture lassen sich mehrere davon zusammenfassen, welche sich zwar im Detail unterscheiden, beim Ziel aber auf das gleiche setzen: Trennung von Verantwortlichkeiten. Im Ideal wird dadurch eine Software erreicht, die sich langfristig einfach warten und erweitern lässt.

Für Microservices wirken die Prinzipien der Clean Architecture allerdings teilweise übertrieben. Die Aufteilung in Schichten kann für kleine Microservices mehr Aufwand bedeuten und nur wenige Vorteile bringen. In diesem Vortrag wollen wir uns mit genau dieser Diskrepanz beschäftigen und daraus Best Practices für neue Microservices ableiten.

Roland König

Freier Softwarearchitekt, Trainer und Berater

Erlangen, Germany