
Moderne .NET-Backends für Angular
Flexible Backends für Ihre Angular-Lösung
- Dauer: 3 Tage
- Nächster Termin: TBA
- Gruppenrabatt verfügbar
- Individuell vereinbar
- In-House oder remote
- Ab ca. 8 Teilnehmer günstiger
In dieser weiterführenden intensiv Schulung lernen Sie, wie sich moderne und optimierte Backends für eine Angular Anwendung entwickeln lassen. Während der Schulung werden Sie neben der Entwicklung des Backends auch die für die Kommunikation mit dem Backend notwendige Logik innerhalb der Angular Anwendung selbst entwickeln.
Auf diese Weise erfahren Sie, wie Sie ihr Backend mit Konzepten aus Domain Driven Designs in Microservices und einzelnen API Endpunkten zerlegen können und warum es sich empfiehlt einen API Gateway einzusetzen. Sie finden heraus, was es bei einer guten Kommunikation via HTTP zu berücksichtigen gibt und was es eigentlich mit Level 4 REST Services auf sich hat.
Zusätzlich wird Ihnen während der Schulung HATEOAS (Hypermedia As The Engine Of Application State) als eine weitere Alternative für die Zustandsverwaltung innerhalb Ihrer Anwendung aufgezeigt. Aber auch Themen wie Datenzugriff, Authentifizierung und Autorisierung werden während der Schulung näher beleuchtet.
Durch die in der Schulung enthaltenen Übungen entsteht somit ein Backend für eine Angular Anwendung, das Sie im Nachhinein als Vorlage für eigene Anwendungen nutzen können.


Highlights
- WebAPIs mit ASP.NET Core und Zugriff auf relationale Datenbanken mit Entity Framework Core
- Zerlegen des Backends mittels Domain Driven Design in Microservices und APIs
- Zugriff auf das Backend über ein API Gateway / BFF (Backend for Frontend)
- State Management via HATEOAS und Level 4 REST Services
- Optimaler und performanter Zugriff auf das Backend aus der Angular Anwendung
- Authentifizierung und Autorisierung
- Bonus: Hosting mittels Containertechnologien
Ausgewählte zufriedene Kunden
Microservices mit ASP.NET Core
Direkt zum Einstieg der Schulung entwickeln wir einen Microservice mittels ASP.NET. Anhand dessen werden die grundlegenden Konzepte dieses Frameworks veranschaulicht. Der dabei entstehende Microservice
dient als Grundlage für die weiteren Kapitel und wird fortan ständig ausgebaut.
Wir gehen davon aus, dass Sie bereits Erfahrung in der Entwicklung mit .NET (Core) haben und die Programmiersprache C# kennen.
Folgende Aspekte werden dabei im Detail beleuchtet:
- Grundlagen von ASP.NET für Web APIs
- Dependency Injection
- Logging
- Configuration
- Filters
Datenzugriff mit Entity Framewok Core
Nahezu jede Anwendung arbeitet mit Daten und muss diese persistieren. Daher beleuchten wir im nächsten Schritt die Arbeit mit relationalen Daten. Wir erweitern unseren Microservice aus dem ersten Kapitel um eine relationale Datenbank auf die wir mittels Entity Framework Core zugreifen.
- Folgende Aspekte werden dabei im Detail beleuchtet:
- Grundlagen von Entity Framework Core
- Migrations
- Entity Properties
- Relationships
Robuste Web APIs
In diesem Teil des Trainings dreht sich alles rund um das HTTP Protokoll. Ohne genauere Kenntnisse darüber wie es funktioniert und wie welche Features des Protokolls zu verwenden sind, wird man keine guten Web APIs bauen können. Daher werden in diesem Teil insbesondere die Themen URLs, Headers, Status Codes und vor das Resourcenmodell von HTTP angesprochen.
Weiterhin wird gezeigt, wie man mit Hilfe des Domain
Driven Designs auch eine Web API in einzelne Endpunkte schneiden kann. Schließlich refaktorisieren wir den bisher entstandenen Microservice um die Prinzipien von HTTP und des Domain Driven Designs (DDD) bestmöglich anzuwenden. Sollten die Prinzipien von DDD mal nicht zu uns passen, sehen wir wie uns Data Transfer Objects (DTOs) helfen können.
Folgende Aspekte werden dabei im Detail beleuchtet:
- HTTP als Übertragungsprotokoll kennen lernen
- Was wir vom Domain Driven Design für die Gestaltung von Web APIs lernen können
- Bereitstellung optimierter REST Endpunkte für Create, Read,
- Update und Delete Operationen
- Data Transfer Objects und POCOs
Microservices und API Gateways / Backend for Frontends (BFF)
In diesem Kapitel des Trainings erhalten die Teilnehmer einen weiteren Microservice dazu. Es stellt sich nun die Frage, wie ein Frontend bestmöglich mit beiden Microservices kommunizieren kann. Diese Frage wird mit einem API Gateway beantwortet und es wird im weiteren Verlauf dieses Abschnitts gezeigt, wie ein solchen mittels ASP.NET implementiert werden kann. Darüber hinaus wird näher beleuchtet, wie Microservices in Kategorien eingeteilt und strukturiert werden können.
Zu Ende dieses Abschnittes wird vom Trainer ein Angular Frontend bereitgestellt in das die Aufrufe an die Microservices über ein API Gateway implementiert werden. Somit ensteht erstmals ein vollständiges Ende-zu-Ende-Beispiel.
Folgende Aspekte werden dabei im Detail beleuchtet:
- Grundlagen einer Microservice Architektur
- Strukturierung und Zugriffsprinzipien bei einer größeren Anzahl von Microservices
- Nutzen von dynamischen Datenstrukturen oder OpenAPI Swagger um einen Microservice aufzurufen
- Aufruf von Microservices aus dem Frontend über ein API Gateway / BFF
State Management mittels HATEOAS
HATEOAS steht für Hypermedia as The Engine of Application State und ist ein Paradigma, das uns dabei Hilft den Anwendungszustand des Gesamtsystems zentral vom Backend aus zu steuern. Richtig umgesetzt, kann man damit sogar das Verhalten des Angular Clients ändern ohne für diesen ein Update verteilen zu müssen.
Dieses Paradigma bietet sich insbesondere bei Client Anwendungen an, die in der Regel eine Verbindung zum Backend haben (wie zum Beispiel Inhouse Enterprise Anwendungen). Der Client fokussiert sich dabei insbesondere auf die Visualisierung und der Benutzerinteraktion. Zentrale Anwendungslogik findet ausschließlich im Backend statt.
In diesem Kapitel wird ein weiteres API Gateway nach den HATEOAS Prinzipien erstellt und aus einer weiteren Angular Anwendung aufgerufen.
Folgende Aspekte werden dabei im Detail beleuchtet:
- Basics und Möglichkeiten des State Managements in einer verteilten Anwendung
- RESTful Web APIs und Hypermedia
- Erstellen von Json Hypermedia in ASP.NET Core
- Nutzen eines HATEOAS Backends von einer Angular Anwendung aus
Asynchrone Kommunikation und Messaging
Microservices sollten möglichst unabhängig voneinander sein. Müssen sie dennoch Daten austauschen sollte dies nicht mittels direkten Aufrufen geschehen um die Bindung der einzelnen Microservices nicht zu verstärken.
Stattdessen sollte man asynchrone Kommunikation verwenden. Mittels Web Socket besteht sogar die Möglichkeit asynchron Nachrichten vom Backend zum Frontend zu senden. In diesem Kapitel wird daher aufgezeit, wie ein Event aus einem Microservice via asynchroner und eventbasierter Kommunikation bis zum Frontend übertragen werden kann.
Folgende Aspekte werden dabei im Detail beleuchtet:
- Einführung in Asynchrone Kommunikation
- Nutzen von Web Sockets mittels SignalR in ASP.NET Core und in Angular
- Nutzen von RabbitMQ zur Realisierung von Publish/Subscribe
Authentifizierung und Autorisierung
Eine weitere häufige Anforderung an Anwendungen ist die Möglichkeit zu erkennen wer gerade mit der Anwendung arbeiten und ob dieser mit den angeforderten Daten/Funktionen arbeiten darf.
Daher werden wir unsere Anwendung im nächsten Schritt um Authentifizierung und Autorisierung erweitern. Wir lernen dabei wie einen Identity Service in user System integriert werden kann um Authentifizierung und Autorisierung mittels OAuth2 und OpenId Connect umzusetzen.
Folgende Aspekte werden dabei im Detail beleuchtet:
- OAuth2 und OpenId Connect als moderne Authentifizierungsprotokolle
- JSON Web Tokens (JWT) als Container für OAuht2 und OpenId Connect Informationen
- Integration eines Security Token Service
Bonus: Hosting mittels Containertechnologien
Nachdem wir zwei Angular Anwendungen und ein zugehöriges Backend entwickelt haben, werden wir beides über Docker Container bereitstellen.
Wenn Frontend wie Backend in unserer lokalen Entwicklungsumgebung innerhalb von Docker laufen, sind wir ebenfalls gerüstet, um den Schritt in die Cloud zu gehen.
Folgende Aspekte werden dabei im Detail beleuchtet:
- Hosten einer Angular Anwendung innerhalb eines Docker Containers mittels nginx als Webserver
- Hosten von ASP.NET Web APIs innerhalb eines Docker Containers
- Nutzen von Docker Compose um das gesamte System lokal auszuführen
- Herausforderungen beim Debugging eines Containerisierten Systems
Manfred Steyer ist Google Developer Expert (GDE) für Angular sowie Tursted Collaborator im Angular-Team. Zusammen mit seinem Team betreut er Kunden im gesamten deutschen Sprachruam. Der Fokus liegt dabei auf Geschäfts- und Industrie-Anwendungen auf der Basis von Angular.
