Schulungsübersicht
Einführung in die moderne .NET-Plattform
- .NET 8 Runtime, SDK und Überblick über die einheitliche Plattform
- Vergleich der Evolution von .NET Framework, .NET Core und .NET 8+
- Projektstruktur, Zielframeworks und Grundlagen des Multi-Targeting
- Einrichten der Entwicklungsumgebung und Tooling
Moderne C# und zukunftsorientierte Sprachpraktiken
- Records, init-only Setter und Unveränderlichkeitsmuster
- Verbesserungen des Pattern-Matchings und Switch-Ausdrücke
- NuLLABLE-Referenztypen und Compiler-gestützte Sicherheit
- Best Practices für async/await und speichereffizientes Streaming
- Gnerische Mathematik, statische Abstrakte in Schnittstellen und leistungsorientierte APIs
- Vorbereitung von Codebasen auf C# 12/13-Funktionen unter .NET 8
Grundlagen von ASP.NET Core und Anwendungseinstieg
- Host Builder, Middleware-Pipeline und Anfragelebenszyklus
- Minimal APIs vs. Controller-basierte APIs: Entscheidungskriterien
- Konfigurationsanbieter, umgebungsspezifische Einstellungen und Secrets-Verwaltung
- Statische Dateien, Routing und Endpoint-Konventionen
- Konfiguration des Dependency-Injection-Containers und Service-Lebensdauern
REST-API-Design und Implementierung
- REST-Reifegradmodell, Ressourcenmodellierung und URI-Design
- HTTP-Methoden, Statuscodes und Content Negotiation
- Anfragevalidierung, Model Binding und FluentValidation-Integration
- Versionierungsstrategien für öffentliche und interne APIs
- Dokumentation mit OpenAPI und Swagger UI
- Integrations-Tests von APIs mit TestServer und WebApplicationFactory
Enterprise-Abhängigkeitsinjektion und Inversion of Control
- Constructor Injection, Service-Lebensdauern und gefangene Abhängigkeiten
- Decorator- und Factory-Muster mit dem integrierten Container
- Scrutor und Integration von DI-Bibliotheken Dritter
- Modulare Service-Registrierung und feature-basierte Organisation
- Querschnittliche Anliegen über Middleware und Filter
Logging, Konfiguration und zentralisierte Fehlerbehandlung
- Strukturiertes Logging mit Microsoft.Extensions.Logging und Serilog
- Log-Level, Scopes, Anreicherung und Sink-Konfiguration
- Exception Middleware und globale Fehlerbehandlungs-Pipelines
- ProblemDetails und RFC 7807-konforme Fehlerantworten
- Health Checks, Telemetrie und Observability-Hooks
- Korrelations-IDs und Vorbereitung auf verteiltes Tracing
Softwarearchitektur für unternehmerische .NET-Lösungen
- Schichtmodelle, Hexagonale Architektur und Clean-Architecture-Prinzipien
- Domänengetriebenes Design (DDD)-Bausteine in .NET
- CQRS und Mediator-Muster mit MediatR
- Repository- und Unit-of-Work-Muster mit EF Core
- Vertikale Scheibenarchitektur für Feature-Kohäsion
- Abschätzung von Abwägungen zwischen Monolith, Modularem Monolith und Microservices
Sicherheit für Webanwendungen und APIs
- Authentifizierungsschemata: JWT, OAuth2, OpenID Connect und Cookie-basierte Flows
- Autorisierungsrichtlinien, Anspruchsbasierter Zugriff und ressourcenbasierte Guards
- HTTPS-Erzwingung, HSTS und sichere Header-Middleware
- Eingabe-Sanitizing, Ausgabe-Codierung und OWASP-Top-10-Minimierung
- Rate Limiting, CORS-Richtlinien und Anti-Forgery-Token-Handhabung
- Secrets-Verwaltung mit Azure Key Vault und umgebungsgesteuerten Rotation
Codequalität, Wartbarkeit und Best Practices
- Coding-Standards, EditorConfig und dotnet format
- Statische Analyse mit Roslyn-Analysen und SonarQube-Integration
- Unit Tests mit xUnit, Mocking mit Moq oder NSubstitute
- Integrations- und Vertragsprüfungen in CI-Pipelines
- Refactoring-Techniken für langlebige Legacy-Module
- Dokumentation, API-Verträge und Praxis der Wissensweitergabe
Modernisierungsstrategie: Bewertung von Legacy-.NET-Framework-Code
- Portfolio-Analyse: Klassifizieren von Anwendungen nach Kritikalität, Komplexität und Geschäftswert
- Verwendung des .NET Upgrade Assistant und Kompatibilitätsanalysators
- Identifizieren veralteter APIs, plattformspezifischer Abhängigkeiten und Lücken bei Drittanbietern
- Anforderungen an Windows-spezifische APIs und WCF-Migration
- Erstellen einer Migrations-Roadmap mit risikobasierter Priorisierung
Schrittweise Migration und Koexistenztechniken
- Strangler-Fig-Muster: schrittweises Ersetzen von Legacy-Subsystemen
- API-First-Migration: Aussetzen von .NET-Framework-Domänen über REST-Fassaden
- Nachrichtenbasiertes Bridging mit RabbitMQ, Azure Service Bus oder Kafka
- Koexistenz auf gemeinsam genutzten Datenbanken und Strategien zur Schema-Versionierung
- Parallelbetrieb von .NET Framework und .NET 8 in derselben Infrastruktur
- Kon containerisieren moderner Komponenten, während das Legacy auf IIS verbleibt.
Praxislabor zur Migration und Überprüfung
- Anwenden des Upgrade Assistant auf ein repräsentatives Legacy-Projekt
- Refaktorisieren einer Web Forms- oder WCF-Diensts zu ASP.NET Core APIs
- Implementierung von DI, Logging und zentralisierter Fehlerbehandlung in der migrierten Lösung
- Hinzufügen von Authentifizierung und Autorisierung zur neuen API-Oberfläche
- Bestätigen der Koexistenz durch End-to-End-Integrationsprüfungen
- Überprüfung, Q&A und Nachschulungsberatung zur Modernisierungsplanung
Voraussetzungen
- Erfahrung mit C#-Programmierung und objektorientierten Designprinzipien
- Vertrautheit mit Webentwicklungskonzepten (HTTP, HTML, CSS, Grundlagen von JavaScript)
- Grundlegendes Verständnis von relationalen Datenbanken und SQL
- Vorherige Kenntnisse in .NET Framework oder ASP.NET sind hilfreich, aber nicht erforderlich.
Zielgruppe
- .NET-Entwickler:innen und Architekt:innen, die sich auf die Modernisierung von Legacy-.NET-Framework-Anwendungen vorbereiten.
- Softwareingenieur:innen, die in Rollen der unternehmerischen .NET-Entwicklung wechseln.
- Technische Leitungen, die für Plattformmigration und Koexistenzplanung verantwortlich sind.
- DevOps- und Infrastrukturpersonal, das .NET-Anwendungslebenszyklen unterstützt.
Erfahrungsberichte (2)
Interaktivität und dynamische Code-Lösungen
Eduard-Emanuel Zaharia - Kruk Italia
Kurs - Advanced Blazor
Maschinelle Übersetzung
Möglichkeit, praktisch tätig zu werden, und Geduld des Trainers
sheena - Te Manawa Taki Trauma System
Kurs - Visual Studio 2022 IDE
Maschinelle Übersetzung