Approfondire C# e .NET
Questo corso si rivolge a sviluppatrici e sviluppatori che programmano già in C# e desiderano aggiornare le proprie conoscenze al livello del .NET moderno. Partiamo da dove si ferma il corso di base: al centro ci sono generics, LINQ, programmazione asincrona, memoria e risorse, codice testabile e architettura.
Ogni argomento viene elaborato con esempi pratici, come quelli che incontriamo ogni giorno nei progetti con plug-in CAD e applicazioni WPF. Al termine scriverà codice più robusto, più facilmente testabile e più semplice da manutenere.
Destinatari
- Sviluppatori software con esperienza in C#
- Architetti software
- Partecipanti al nostro corso base di C#
Prerequisiti
- Padronanza della sintassi C# e dell'orientamento agli oggetti
- Prima esperienza con Visual Studio
Modalità e durata
- 2 giorni
- Online, comodamente da casa
- Nelle nostre aule di formazione a Freiburg
- Presso la Sua sede - possibile solo a partire da un numero minimo di partecipanti
Date
- attualmente su richiesta
Materiale per i partecipanti
- Laptop
- Visual Studio 2022 o 2026 (è sufficiente la Community Edition)
- .NET SDK aggiornato (.NET 8 o successivo)
- Materiale per scrivere
Aula di formazione
- Proiettore
- Lavagna bianca, lavagna o flipchart
Contenuti del corso di 2 giorni: C# avanzato
Giorno 1
- Panoramica del giorno 1
- Il sistema dei tipi nel dettaglio
- Tipi valore e tipi riferimento, struct e record
- Nullable reference types
- Pattern matching ed espressioni switch
- Generics
- Classi e metodi generici
- Vincoli con where
- Covarianza e controvarianza
- Delegate, eventi ed espressioni lambda
- Func, Action e delegate personalizzati
- Sottoscrivere e annullare correttamente gli eventi
- LINQ
- Query su collection
- Comprendere l'esecuzione differita
- Metodi di estensione personalizzati
- Esercizi individuali
- Anteprima del giorno 2
Giorno 2
- Riepilogo (giorno 1 del corso)
- Panoramica del giorno 2
- Programmazione asincrona
- Task, async e await
- Annullamento con CancellationToken
- Errori tipici: deadlock e async void
- Memoria e risorse
- Garbage collector
- IDisposable e using
- Misurare e migliorare le prestazioni
- Gestione degli errori e logging
- Eccezioni personalizzate
- Logging strutturato
- Codice testabile
- Unit test con xUnit o NUnit
- Dependency injection
- Mocking
- Architettura
- Principi SOLID
- Design pattern nella pratica
- MVVM per interfacce WPF
- Esercizi individuali
- Conclusione
- Dove trovare altre informazioni?
