Kursplan
Introduktion till den moderna .NET-plattformen
- .NET 8-runtime, SDK och överblick över den enhetliga plattformen
- Jämförelse av .NET Framework, .NET Core och evolutionen av .NET 8+
- Projektstruktur, målmallar (target frameworks) och grunderna i multi-targeting
- Inställning av utvecklingsmiljö och verktyg
Modern C# och framtidsinriktade språkpraxis
- Records, init-only setters och oändringsbara (immutability) mönster
- Förbättrad pattern matching och switch-uttryck
- Tillåtna referenstyper (nullable reference types) och kompilärdreven säkerhet
- Best practice för async/await och minnes effektiv streaming
- Generisk matematik, statiska abstrakta metoder i gränssnitt och prestandainriktade API:er
- Förbereda kodbasen för C# 12/13-funktioner på .NET 8
ASP.NET Core-grunder och applikationsbootstrap
- Host Builder, middleware-pipeline och begäranlivscykel
- Minimal APIs jämfört med kontrollerbaserade API:er: beslutsfattande kriterier
- Konfigurationsleverantörer, miljöspecifika inställningar och hantering av hemligheterna (secrets)
- Statiska filer, routing och slutpunktskonventioner
- Konfiguration av beroendeinjektionsbehållare och tjänstlevnadstider (service lifetimes)
REST API-design och implementation
- REST-mognadsmodell, resursmodellering och URI-design
- HTTP-metoder, statuskoder och innehållsförhandling (content negotiation)
- Begärandevalidering, modellbindning och integration med FluentValidation
- Versionsstrategier för offentliga och interna API:er
- Dokumentation med OpenAPI och Swagger UI
- Integrations testning av API:er med TestServer och WebApplicationFactory
Företagsklass beroendeinjektion (DI) och invertering av kontroll (IoC)
- Konstruktörinjection, tjänstlevnadstider och fångade beroenden (captive dependencies)
- Decorator- och fabrik mönster med den inbyggda behållaren
- Integration av Scrutor och tredjeparts-DI-bibliotek
- Modulär tjänstregistrering och funktionbaserad organisation
- Korsande intressen (cross-cutting concerns) via middleware och filter
Loggning, konfiguration och centraliserad felf hantering
- Strukturerad loggning med Microsoft.Extensions.Logging och Serilog
- Loggnivåer, scoping, berikning (enrichment) och sink-konfiguration
- Fel-middleware och globala felf hanteringspipelines
- ProblemDetails och RFC 7807-kompatibla felsvar
- Hälsokontroller, telemetri och observerbarhetskopplingar (hooks)
- Korrelations-ID:n och förberedelse för distribuerad spårning (distributed tracing)
Mjukvaruarkitektur för företags .NET-lösningar
- Principer för lagerbaserad, hexagonal och ren arkitektur
- Byggstenar för domändesign (DDD) i .NET
- CQRS- och mediator-mönster med MediatR
- Repository- och enhet-arbetsmönster med EF Core
- Vertikal skivarkitektur för funktionskohesion
- Vägning av fördelar och nackdelar mellan monolit, modulär monolit och mikrotjänster
Säkerhet för webbapplikationer och API:er
- Autentiseringsscheman: JWT, OAuth2, OpenID Connect och cookie-baserade flöden
- Auktoriseringspolicyer, anspråksbaserad åtkomst och resursbaserade vaktposter
- Hårdning av HTTPS, HSTS och middleware för säkra header
- Input-sanitering, output-kodning och motverkande mot OWASP Top 10
- Rate limiting, CORS-policyer och hantering av anti-forgery-token
- Hantering av hemligheterna med Azure Key Vault och miljödriven rotation
Kodkvalitet, underhållbarhet och bästa praxis
- Kodningsstandarder, EditorConfig och dotnet format
- Statisk analys med Roslyn-analyser och SonarQube-integration
- Enhetstestning med xUnit, mockning med Moq eller NSubstitute
- Integrations- och kontraktstestning i CI-pipelines
- Refactoring-tekniker för långlivade moduler för gamla system
- Dokumentation, API-kontrakt och praktiker för kunskapsdelning
Moderneringsstrategi: Utvärdering av kod från .NET Framework för gamla system
- Portföljanalys: klassificera appar efter kritiskhet, komplexitet och affärsnytta
- Användning av .NET Upgrade Assistant och kompatibilitetsanalysator
- Identifiera deprecierade API:er, plattformsberoenden och luckor hos tredje parts-leverantörer
- Windows-specifika API:er och överväganden för WCF-migration
- Skapa en migrationsroadmap med riskbaserad prioritering
Progressiv migration och teknik för samexistens
- Strangler Fig-mönstret: successiv ersättning av gamla subsystem
- API-first-migration: exponering av .NET Framework-domäner via REST-facader
- Baserad meddelandebrygga med RabbitMQ, Azure Service Bus eller Kafka
- Samexistens via delad databas och strategier för schemaversioning
- Körs .NET Framework och .NET 8 sida vid sida i samma infrastruktur
- Containerisering av moderna komponenter samtidigt som gamla system lämnas på IIS
Praktisk migrationslaboratorie övning och genomgång
- Tillämpa Upgrade Assistant på ett representativt projekt för gamla system
- Refaktorisera en Web Forms- eller WCF-tjänst till ASP.NET Core-API:er
- Implementera DI, loggning och centraliserad felf hantering i den migrerade lösningen
- Lägga till autentisering och auktorisation till det nya API-ytan
- Verifiera samexistens genom integrations testning från ände till ände
- Gå igenom, Q&A och vägledning för moderniseringsplanering efter utbildningen
Krav
- Erfarenhet av C#-programmering och principer för objektorienterad design
- Kunskap om webb utvecklingskoncept (HTTP, HTML, CSS, JavaScript-grunder)
- Grundläggande förståelse för relationella databaser och SQL
- Tidigare insikt i .NET Framework eller ASP.NET är hjälpsamt men inte obligatoriskt
Målgrupp
- .NET-utvecklare och arkitekter som förbereder sig för att modernisera gamla .NET Framework-applikationer
- Mjukvaruingenjörer som går in i företagsroller för .NET-utveckling
- Tekniska ledare ansvariga för plattformsmigration och planering av samexistens
- DevOps- och infrastrukturepersonal som stöder livscykeln för .NET-applikationer
Vittnesmål (2)
Interaktivitet och kodlösningar på flugan
Eduard-Emanuel Zaharia - Kruk Italia
Kurs - Advanced Blazor
Maskintolkat
chans att få praktisk erfarenhet och tränarens tålamod
sheena - Te Manawa Taki Trauma System
Kurs - Visual Studio 2022 IDE
Maskintolkat