Struttura del corso
Introduzione alla Piattaforma .NET Moderna
- Runtime, SDK e panoramica della piattaforma unificata di .NET 8
- Confronto tra l'evoluzione di .NET Framework, .NET Core e .NET 8+
- Struttura del progetto, framework target e basi del multi-targeting
- Configurazione dell'ambiente di sviluppo e degli strumenti
C# Moderno e Pratiche Linguistiche Orientate al Futuro
- Records, setter solo in lettura (init-only) e pattern di immutabilità
- Miglioramenti del pattern matching ed espressioni switch
- Nullable reference types e sicurezza guidata dal compilatore
- Best practice async/await e streaming efficiente in termini di memoria
- Generic math, static abstracts nelle interfacce e API orientate alle prestazioni
- Preparazione delle codebase per le funzionalità C# 12/13 su .NET 8
Fondamenti di ASP.NET Core e Avvio dell'Applicazione
- Host builder, pipeline middleware e ciclo di vita della richiesta
- Minimal APIs vs API basate su controller: criteri decisionali
- Provider di configurazione, impostazioni specifiche per ambiente e gestione dei segreti
- File statici, routing e convenzioni degli endpoint
- Configurazione del contenitore dependency injection e vitaservice (service lifetimes)
Progettazione e Implementazione delle API REST
- Modello di maturità REST, modellazione delle risorse e progettazione URI
- Methdos HTTP, codici di stato e negoziazione dei contenuti
- Validazione delle richieste, model binding e integrazione con FluentValidation
- Strategie di versioning per API pubbliche e interne
- Documentazione con OpenAPI e Swagger UI
- Test di integrazione delle API con TestServer e WebApplicationFactory
Dependency Injection Enterprise e Inversion of Control
- Iniezione del costruttore, service lifetimes e dipendenze captive
- Pattern decorator e factory con il contenitore integrato
- Integrazione di Scrutor e librerie DI di terze parti
- Registrazione modulare dei servizi e organizzazione basata sulle funzionalità
- Aree trasversali (cross-cutting concerns) tramite middleware e filtri
Logging, Configurazione e Gestione Centralizzata degli Errori
- Logging strutturato con Microsoft.Extensions.Logging e Serilog
- Livelli di log, scope, arricchimento (enrichment) e configurazione dei sink
- Middleware per le eccezioni e pipeline globali di gestione degli errori
- ProblemDetails e risposte agli errori conformi a RFC 7807
- Health check, telemetria e hook di osservabilità
- ID di correlazione e preparazione al distributed tracing
Architettura del Software per Soluzioni .NET Enterprise
- Principi dell'architettura a strati, esagonale (hexagonal) e pulita (clean architecture)
- Blocchi costitutivi del Domain-Driven Design in .NET
- Pattern CQRS e Mediator con MediatR
- Pattern Repository e Unit of Work con EF Core
- Architettura Vertical Slice per la coesione delle funzionalità
- Valutazione dei compromessi tra monolite, monolite modulare e microservizi
Sicurezza per Applicazioni Web e API
- Schemi di autenticazione: JWT, OAuth2, OpenID Connect e flussi basati su cookie
- Policies di autorizzazione, accesso basato su claim e guardie basate sulle risorse
- Applicazione HTTPS, HSTS e middleware per gli header sicuri
- Sanificazione degli input, codifica dell'output e mitigazione OWASP Top 10
- Rate limiting, politiche CORS e gestione dei token antifalsificazione (anti-forgery)
- Gestione dei segreti con Azure Key Vault e rotazione guidata dall'ambiente
Qualità del Codice, Manutentabilità e Best Practices
- Standard di codifica, EditorConfig e dotnet format
- Analisi statica con analyzer Roslyn e integrazione con SonarQube
- Test unitari con xUnit, mocking con Moq o NSubstitute
- Test di integrazione e dei contratti nelle pipeline CI
- Tecniche di refactoring per moduli legacy di lunga durata
- Documentazione, contratti API e pratiche di condivisione della conoscenza
Strategia di Modernizzazione: Valutazione del Codice Legacy .NET Framework
- Analisi del portafoglio: classificare le applicazioni per criticità, complessità e valore aziendale
- Utilizzo di .NET Upgrade Assistant e dell'analizzatore di compatibilità
- Identificazione delle API deprecate, dipendenze specifiche della piattaforma e lacune di terze parti
- API specifiche di Windows e considerazioni per la migrazione WCF
- Creazione di una roadmap di migrazione con prioritizzazione basata sui rischi
Tecniche di Migrazione Progressiva e Coesistenza
- Pattern Strangler Fig: sostituzione incrementale dei sottosistemi legacy
- Migrazione API-first: esposizione dei domini .NET Framework tramite facciate REST
- Pontaggio basato sui messaggi con RabbitMQ, Azure Service Bus o Kafka
- Coesistenza del database condiviso e strategie di versioning dello schema
- Esecuzione side-by-side di .NET Framework e .NET 8 nella stessa infrastruttura
- Containerizzazione dei componenti moderni mentre il legacy rimane su IIS
Laboratorio Pratico di Migrazione e Revisione
- Applicazione dell'Upgrade Assistant a un progetto legacy rappresentativo
- Refactoring di un servizio Web Forms o WCF in API ASP.NET Core
- Implementazione di DI, logging e gestione centralizzata degli errori nella soluzione migrata
- Aggiunta di autenticazione e autorizzazione alla nuova superficie API
- Verifica della coesistenza tramite test di integrazione end-to-end
- Revisione, Q&A e guida alla pianificazione della modernizzazione post-formazione
Requisiti
- Esperienza con la programmazione in C# e i principi del design orientato agli oggetti
- Conoscenza dei concetti di sviluppo web (HTTP, HTML, CSS, nozioni base di JavaScript)
- Comprensione di base dei database relazionali e SQL
- Una precedente esposizione a .NET Framework o ASP.NET è utile ma non obbligatoria
Target
- Sviluppatori e architetti .NET che si preparano a modernizzare applicazioni legacy .NET Framework
- Ingegneri del software che entrano in ruoli di sviluppo enterprise .NET
- Leader tecnici responsabili della migrazione della piattaforma e della pianificazione della coesistenza
- Personale DevOps e infrastrutture che supporta il ciclo di vita delle applicazioni .NET
Recensioni (2)
Interattività e soluzioni di codice al volo
Eduard-Emanuel Zaharia - Kruk Italia
Corso - Advanced Blazor
Traduzione automatica
possibilità di svolgere esercitazioni pratiche e pazienza del formatore
sheena - Te Manawa Taki Trauma System
Corso - Visual Studio 2022 IDE
Traduzione automatica