Cursusaanbod
Introductie tot het Moderne .NET-platform
- .NET 8-runtime, SDK en overzicht van het geünificeerde platform
- Vergelijking van de evolutie van .NET Framework, .NET Core en .NET 8+
- Projectstructuur, target frameworks en basisprincipes van multi-targeting
- Het ontwikkelomgeving en gereedschap instellen
Moderne C# en Toekomstgerichte Taalpraktijken
- Records, init-only setters en immutable patronen
- Verbeteringen in pattern matching en switch-expressies
- Nullable reference types en compiler-gedreven veiligheid
- Best practices voor async/await en geheugenefficiënte streaming
- Generic math, statische abstracte methoden in interfaces en prestatiegerichte API's
- Codebases voorbereiden op C# 12/13-functies op .NET 8
ASP.NET Core-grondslagen en Applicatie-initialisatie
- Host builder, middleware-pipeline en verzoeklevenscyclus
- Minimal APIs versus controller-based API's: beslissingscriteria
- Configuration providers, omgevingspecifieke instellingen en beheer van geheimen
- Statische bestanden, routing en endpoint-conventies
- Configuratie van de dependency injection-container en service-lifetimes
REST API-ontwerp en implementatie
- REST maturity model, resource modeling en URI-ontwerp
- HTTP-methoden, statuscodes en content negotiation
- Verzoekvalidatie, model binding en integratie van FluentValidation
- Versioning-strategieën voor openbare en interne API's
- Dokumentatie met OpenAPI en Swagger UI
- Integratietesten van API's met TestServer en WebApplicationFactory
Enterprise Dependency Injection en Inversion of Control
- Constructor injection, service lifetimes en captive dependencies
- Decorator- en factorypatronen met de ingebouwde container
- Integratie van Scrutor en externe DI-libraries
- Modulaire servicedeclaratie en feature-georganiseerde structuur
- Cross-cutting concerns via middleware en filters
Logging, Configuratie en Gecentraliseerde Foutafhandeling
- Structured logging met Microsoft.Extensions.Logging en Serilog
- Log-niveaus, scopes, verrijking en sink-configuratie
- Exception middleware en globale foutafhandelingspipelines
- ProblemDetails en RFC 7807-conforme foutresponsen
- Health checks, telemetry en observabiliteit hooks
- Korrelatie-ID's en voorbereiding op distributed tracing
Softwarearchitectuur voor Enterprise .NET-oplossingen
- Principes van gelaagde, hexagonale en clean architecture
- Domain-driven design bouwstenen in .NET
- CQRS- en mediatorpatronen met MediatR
- Repository- en unit-of-work-patronen met EF Core
- Vertical slice architecture voor feature-cohesie
- Evalueren van de afwegingen tussen monolith, modular monolith en microservices
Beveiliging voor Webapplicaties en API's
- Authentication schemas: JWT, OAuth2, OpenID Connect en cookie-gebaseerde flows
- Authorization policies, claims-based access en resource-based guards
- HTTPS-afrming, HSTS en beveiligde header middleware
- Invoersanitisatie, uitvoerencoding en mitigatie van OWASP Top 10
- Ratelimiting, CORS-beleiden en afhandeling van anti-forgery tokens
- Beheer van geheimen met Azure Key Vault en environment-gedreven rotatie
Codekwaliteit, Onderhoudbaarheid en Best Practices
- Codingsstandaarden, EditorConfig en dotnet format
- Statische analyse met Roslyn analyzers en SonarQube-integratie
- Unit testen met xUnit, mocking met Moq of NSubstitute
- Integratie- en contracttesten in CI-pipelines
- Refactoring technieken voor langlevende legacy modules
- Dokumentatie, API-contracten en practices voor kennisdeling
Moderniseringsstrategie: Beoordeling van Legacy .NET Framework-code
- Portfolioanalyse: classificeren van apps op basis van kritiekheid, complexiteit en bedrijfswaarde
- Het gebruik van .NET Upgrade Assistant en compatibility analyzer
- Identificeren van gedeprecateerde API's, platform-specifieke afhankelijkheden en tekortkomingen in derde partijen
- Overwegingen voor Windows-specifieke API's en WCF-migratie
- Een migratieroadmap maken met risicogebaseerde prioritering
Progressieve Migratie en Co-existentietechnieken
- Strangler Fig-patroon: geleidelijk vervangen van legacy subsystemen
- API-first migratie: blootstellen van .NET Framework-domeinen via REST-facades
- Gebaseerde bruggen met RabbitMQ, Azure Service Bus of Kafka
- Co-existentie met gedeelde databases en strategieën voor schema-versieering
- .NET Framework en .NET 8 naast elkaar draaien in dezelfde infrastructuur
- Kantelen van moderne componenten terwijl legacy op IIS blijft
Praktijk Lab Migratie en Beoordeling
- Het toepassen van de Upgrade Assistant op een representatief legacy project
- Een Web Forms- of WCF-service refactoren naar ASP.NET Core API's
- DI, logging en gecentraliseerde foutafhandeling implementeren in de gemigreerde oplossing
- Authenticatie en authorisatie toevoegen aan het nieuwe API-surface
- Co-existentie verifiëren via end-to-end integratietesten
- Beoordeling, V&A en richtlijnen voor post-training moderniseringsplanning
Vereisten
- Ervaring met C#-programmeer en objectgeoriënteerd ontwerpprincipes
- Bekendheid met concepten voor webontwikkeling (HTTP, HTML, CSS, basis JavaScript)
- Basisbegrip van relationele databases en SQL
- Vorige blootstelling aan .NET Framework of ASP.NET is handig maar niet verplicht
Doelgroep
- .NET-ontwikkelaars en architecten die zich voorbereiden op het moderniseren van legacy .NET Framework-toepassingen
- Software engineers die overstappen naar enterprise .NET-ontwikkelingsrollen
- Teknishe leaders verantwoordelijk voor platformmigratie en co-existentieplanning
- DevOps- en infrastructuurspersoneel dat de levenscyclus van .NET-toepassingen ondersteunt
Getuigenissen (2)
Interactiviteit en code-oplossingen op het moment zelf
Eduard-Emanuel Zaharia - Kruk Italia
Cursus - Advanced Blazor
Automatisch vertaald
vloeiende gesprekken, luisteren en aanpassing door de trainer
Mathieu - Cetim
Cursus - Visual Studio 2022 IDE
Automatisch vertaald