Struttura del corso
Dalle Competenze Linguistiche al Design della Soluzione
- Funzionalità avanzate di C# e le loro implicazioni progettuali.
- Ripristino dell'intento di progettazione dal codice esistente.
Analisi dei Requisiti e Modellagio del Dominio
- Casi d'uso, user story e criteri di accettazione.
- Modelli di dominio e linguaggio ubiquo.
Principi di Progettazione del Software
- Principi SOLID applicati alle soluzioni .NET.
- Coupling, coesione e direzione delle dipendenze.
Pattern di Progettazione per Applicazioni .NET
- Selezione di pattern creativi, strutturali e comportamentali.
- Pattern e anti-pattern nel codice esistente.
Stili di Architettura e Prendimento di Decisioni Tecniche
- Confronto tra architettura a strati, esagonale e clean architecture.
- Registri delle decisioni architetturali e analisi dei trade-off.
Pianificazione della Struttura della Soluzione
- Organizzazione di soluzioni e progetti per codebase di grandi dimensioni.
- Monolite modulare contro confini orientati ai servizi.
C# Moderno per Codice Manutenibile
- Pattern matching, record e tipi di riferimento nullabili.
- Generics, LINQ e composizione funzionale.
Gestione delle Eccezioni, Log e Osservabilità
- Strategia delle eccezioni e contratti di errore.
- Logging strutturato, correlazione e health check.
Riflessione, Attributi e Metaprogrammazione
- Design guidato da attributi e casi d'uso della riflessione.
- Source generator e generazione di codice in fase di compilazione.
Fondamenti di ASP.NET Core
- Modello di hosting, iniezione delle dipendenze e configurazione.
- Pipeline delle richieste, middleware e filtri.
Progettazione di API REST
- Modellazione delle risorse e semantica HTTP.
- Versionamento, validazione e risposte di errore.
- Contratti API con OpenAPI.
Protezione delle Applicazioni .NET
- Autenticazione e autorizzazione con OpenID Connect.
- Autorizzazione basata su policy e gestione dei segreti.
Modellagio delle Minacce e Design Sicuro
- Modellamento STRIDE e confini di fiducia.
- Rivedere la sicurezza del design prima dell'implementazione.
Accesso ai Dati con Entity Framework Core
- Modellazione di entità e relazioni.
- Ciclo di vita del DbContext e strategia di migrazione.
Prestazioni delle Query e Architettura dei Dati
- Strategie di caricamento e trappole dell'eager loading.
- Transazioni, token di concorrenza e bypass di EF.
Concorrenza e Programmazione Asincrona
- Task, TPL e trappole di async/await.
- Sincronizzazione, cancellazione e thread safety.
Ottimizzazione delle Prestazioni
- Profiling e benchmarking con BenchmarkDotNet.
- Memoria, allocazioni e garbage collection.
- Strategie di caching e test di carico.
Strategia di Testing tra gli Strati
- Confini tra test unitari, di integrazione e end-to-end.
- Architettura testabile e test double.
Deployment e Prontezza Operativa
- Container, configurazione e pipeline CI/CD.
- Diagnostica in produzione e sicurezza del rilascio.
Capstone: Revisione del Design e Implementazione
- Revisione architetturale di un'applicazione di esempio.
- Implementazione e refactoring di una fetta di funzionalità.
Requisiti
- Esperienza nella programmazione con C#
- Conoscenza operativa della programmazione orientata agli oggetti
- Conoscenza base di SQL e database relazionali
Pubblico di Riferimento
- Sviluppatori .NET
- Ingegneri del software e technical lead
- Sviluppatori che si muovono verso ruoli di progettazione applicativa
Recensioni (4)
Era un addestramento uno-a-uno, quindi era specializzato sulle mie esigenze specifiche. Shane ha evidenziato elementi di WPF/C# che potrebbero essere benefici per i miei progetti di sviluppo.
Warren Nolan - Northrop Grumman
Corso - Programming in WPF
Traduzione automatica
Conoscenza, coinvolgimento e rapporto del formatore
Adam Kuklewski - GE Medical Systems Polska
Corso - Technical Architecture and Patterns
Traduzione automatica
Le spiegazioni e l'interattività del formatore erano davvero ottime; anche se probabilmente non ero abbastanza esperto, ho comunque imparato molto!
Pieter Bruynseels - Spot Buy Center BV
Corso - Design Patterns
Traduzione automatica
Simpatico e amichevole. Molto competente. Consiglierei Shane ad altri.
Joshua - California State University Bakersfield
Corso - Programming in C# with Visual Studio 2022
Traduzione automatica