Tag 1 - Architekturgrundlagen & ASP.NET Core im Überblick
- Einführung
- Ziele des Seminars & Erwartungsklärung
- Was macht gute Architektur aus?
- Prinzipien: SOLID, Separation of Concerns, Kapselung, Testbarkeit
- Architekturmuster im Überblick
- Schichtenarchitektur (Layered Architecture)
- Typische Layer: UI, Application, Domain, Data
- Vorteile, Nachteile, typische Probleme (z. B. God Services, enge Kopplung)
- Onion Architecture
- Trennung der Core-Domäne von Infrastruktur
- Abhängigkeitsrichtung, Use Cases, Interfaces
- Microservices
- Aufbau, Bounded Contexts, Schnittstellen
- Kommunikation: REST, gRPC, Messaging
- Herausforderungen: Datenhaltung, Transaktionen, Verteilung
- Vergleich der Architekturen
- Layered vs. Onion vs. Clean vs. Microservices
- ASP.NET Core Architekturgrundlagen
- ASP.NET Hostingmodell, Middleware, Dependency Injection
- Projektstruktur vs. Lösungsstruktur
- Einstiegspunkte für Architekturentscheidungen
Tag 2 - Clean Architecture in der Praxis
- Clean Architecture - Theorie
- Ursprung, Motivation, Abgrenzung zu anderen Architekturen
- Die Dependency Rule & Zwiebelmodell von innen nach außen
- Bestandteile:
- Entities (Domain Model)
- Use Cases / Application Services
- Interfaces / Ports
- Frameworks & Infrastructure (z. B. Datenbank, Web API)
- Das Domain Model
- Modellierung der Fachlichkeit unabhängig von Technik
- Aggregates, Value Objects, Business Logik
- Regeln für ein reines Domain Model
- Strategien zur Trennung von Fach- und Infrastrukturcode
- Infrastructure Layer & Web API
- Umsetzung technischer Details: EF Core, Caching, Logging, External Services
- Web API als Infrastruktur: API-Controller als reine I/O-Schicht
- Implementierung von Interfaces aus dem Application Layer
- Lose Kopplung zwischen API, Anwendung und Domäne
- DTOs und Mappings
- Abgrenzung zwischen Domain Models und DTOs
- Wann & warum: Transformation für API, UI, Persistenz
- Einsatz von AutoMapper, manuelles Mapping, Source Generators
- Typische DTO-Strukturen: Request/Response, Create/Update/View
- Lose Kopplung & Abstraktion
- Interface-basierte Architektur
- Inversion of Control (IoC), Dependency Injection in ASP.NET Core
- Serviceverträge, Mediator Pattern (z. B. mit MediatR)
- Strategien zur Reduzierung von Abhängigkeiten
Tag 3 - Integration, Best Practices & Architektur-Workshop
- Integration & technische Umsetzung
- Implementierung von Repository Pattern & Datenzugriff in Clean Architecture
- EF Core als technische Infrastruktur - richtig entkoppeln
- Zugriff auf externe Dienste (z. B. Mail, APIs, Message Broker)
- Cross-Cutting Concerns: Caching, Logging, Retry, Security
- Testbarkeit & Clean Architecture
- Unit-Tests für Use Cases und Domain Layer
- Mocking von Infrastruktur
- Integrationstests mit minimaler Infrastruktur
- Best Practices
- Projektstruktur: Vertikale Slices vs. Layered Slices
- Feature-Folder, modulare Organisation
- Fehlerbehandlung & Logging in einer sauberen Architektur
- Asynchrone Verarbeitung, CancellationToken, Task-basiertes Design
- Architektur-Workshop
- Praktische Anwendung: Clean Architecture auf eine Beispiel-Domäne anwenden
- Aufgaben:
- Domänenmodell entwerfen
- Use Cases ableiten
- API-Design mit DTOs erstellen
- Infrastruktur "anschließen"
- Austausch & Diskussion der Lösungsansätze
LernzieleSie können nach diesem Seminar moderne Webarchitekturen in ASP.NET Core fundiert beurteilen, vergleichen und in der Praxis anwenden. Sie beherrschen den Aufbau einer Anwendung nach Clean Architecture, kennen die Unterschiede zwischen Layered, Onion und Microservices und wissen, wie Sie fachliche und technische Komponenten sauber trennen, entkoppeln und testbar gestalten.
ZielgruppenDas Seminar richtet sich an
erfahrene .NET-Entwickler und Softwarearchitekten
, die moderne Webarchitekturen mit ASP.NET Core professionell umsetzen möchten. Sie profitieren besonders, wenn Sie größere Applikationen betreuen, erweitern oder von monolithischen Strukturen auf modulare, wartbare Architekturen umsteigen wollen.
Teilnahmevoraussetzungen:
- Sie sind erfahren in der Entwicklung mit ASP.NET Core und C#
- Sie kennen die Grundlagen objektorientierter Entwicklung
- Sie haben bereits Anwendungen mit ASP.NET Web API, MVC oder Blazor entwickelt
- Erste Erfahrungen mit Architekturprinzipien (z. B. SOLID, Dependency Injection) sind hilfreich