Speaker

Roland König

Roland König

Freier Softwarearchitekt, Trainer und Berater

Erlangen, Germany

Roland König ist freier Softwarearchitekt, Trainer 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).

Area of Expertise

  • Information & Communications Technology

Topics

  • .NET
  • Azure
  • C#
  • ASP.NET Core
  • entity framework core

Einsatz von Emulatoren und Simulatoren für realitätsnahe Tests

Test und Testautomatisierung sind jedem ein Begriff. Häufig verwenden wir dafür automatisierte Unit- und Integrationstests, i. d. R. in kleinerem Umfang auch Tests auf Systemebene. Sobald mit fremden Systemen gekoppelt wird, können diese Methoden allerdings an Ihre Grenzen stoßen. Es gilt, zusammenhängende Prozesse abzubilden, welche von außen auf das eigene System einwirken. Man stelle sich eine Liste von Requests mehrerer fremder Systeme vor (z. B. von einer App, einer Website oder/und von IoT-Geräten), welche zusammen einen Prozess bilden. An dieser Stelle können Simulatoren und Emulatoren helfen, sowohl bei einzelnen Tests, als auch bei Massentests zu unterstützen. Im Rahmen dieses Vortrags werden wir uns mögliche Einsatzszenarien anschauen und diskutieren, wie sie sich in eigenen Projekten verwenden lassen.

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.

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 ASP.NET Core seit Version 3.0 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, steht in vielen gängigen Programmiersprachen zur Verfügung und bringt noch viele weitere Vorteile.

In diesem Vortrag durchlaufen wir eine Einführung in gRPC mit ASP.NET Core, schauen uns die Unterschiede zu REST-Webservices und SOAP-Webservices auf Basis der WCF (Windows Communication Foundation) an. Zudem diskutieren wir Vor- und Nachteile von gRPC, welche vor dem praktischen Einsatz von gRPC bekannt sein sollten.

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.

Mithilfe von Passkeys entgültig von Passwörtern verabschieden

Schwache Passwörter sind nach wie vor eines der großen Probleme im Security-Umfeld. Multifaktor-Authentifizierung erhöht zwar die Sicherheit, macht den Login-Prozess für den Anwender allerdings auch aufwändiger. Also was tun? Eine mögliche Alternative ist, mit dem neuen Standard „Passkeys“ komplett auf Passwörter zu verzichten. Die großen Hersteller Google, Microsoft, Apple und viele andere stehen hinter Passkeys und bauen eine entsprechende Authentifizierungs-Variante in ihren Produkten ein. Die Zeit ist also mehr als Reif, dass auch wir als Entwickler uns mit dem neuen Standard beschäftigen.

In diesem Vortrag schauen wir uns die Konzepte hinter Passkeys genauer an und stellen es älteren Authentifizierungs-Varianten gegenüber. Ebenso beleuchten wir gemeinsam Vor- und Nachteile von Passkeys.

Containerisierung von .NET Applikationen

Container auf Linux-Basis haben sich als defacto-Standard durchgesetzt, wenn es um den Betrieb von .NET-Applikationen geht. Container ermöglichen aus Betriebssicht eine hohe Flexibilität. Sie bringen alles mit, was zum Ausführen der Applikation benötigt wird und setzen lediglich eine Container-Runtime am Server voraus. Container können damit fast überall ausgeführt werden, egal ob in der Cloud, im eigenen Rechenzentrum oder auf der Entwickler-Maschine. In diesem Vortrag beschäftigen wir uns im mit den vielen Stellschrauben, die es bei der Containerisierung von .NET-Applikationen gibt.

ASP.NET Core Applikationen absichern

Webapplikationen sind insbesondere im Internet einer hohen Zahl von Angriffen ausgesetzt. ASP.NET Core ist in seiner Standardeinstellung bereits gut für eben diese Angriffe ausgerüstet. Doch was genau gilt es zu beachten, damit die eigene Seite auch tatsächlich sicher genug bleibt und keine neuen Sicherheitslücken öffnet? In diesem Vortrag beschäftigen wir uns mit einigen typischen Angriffsvektoren und die zugehörigen Sicherheitsmaßnahmen in ASP.NET Core. Ebenso schauen wir uns an, wie man es dem Angreifer schwieriger machen kann, Sicherheitslücken zu finden.

Roland König

Freier Softwarearchitekt, Trainer und Berater

Erlangen, Germany