
Stato: scritto
Volume 1 — Il linguaggio C#
Il C# che serve per scrivere finestre, insegnato da capo: tipi, oggetti, file, JSON e XML, architetture, thread, Task e async, con programmi console che mostrano subito che cosa succede.
18 capitoli · 353 pagine. Si parte dall'installazione dell'SDK di .NET 10 e di Visual Studio Code, passo per passo, e si arriva ai thread misurati, alla condizione di gara vista accadere e al deadlock provocato e risolto, a await spiegato fino alla macchina a stati che genera il compilatore. In mezzo: classi e oggetti, interfacce, delegati ed eventi senza lambda, generici e null, eccezioni, file salvati senza lasciarli mai a metà, JSON e XML, e come si organizza un programma (MVC, MVP, MVVM).
È il volume per chi comincia, e per chi conosce già un linguaggio e vuole C# fatto bene. Le finestre cominciano nel volume 2, che parte da dove questo finisce.



Indice dei capitoli
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare | — | 8 |
| I · Il linguaggio C# e gli strumenti | I.1–I.18 | 290 |
| Appendici | A–C | 40 |
| Totale | 18 capitoli | 353 |
Prima di cominciare ✔
Prefazione · la collana · A chi è rivolto · Come è fatto il libro e i percorsi di lettura · Le regole della casa · Gli strumenti e il codice degli esempi · Convenzioni tipografiche.
Parte prima — Il linguaggio C# e gli strumenti
- Dal sorgente al programma ✔ — cos'è un programma; .NET: runtime, librerie, SDK; installare SDK ed editor passo per passo; il terminale;
dotnet new,build,run; progetto e soluzione; il primo programma; leggere gli errori; il debugger. - Visual Studio Code: l'ambiente di lavoro ✔ — la finestra; le estensioni; la cartella di lavoro con la soluzione;
settings.json,.editorconfig,tasks.json,launch.json; IntelliSense, correzioni, rinomina; terminale integrato e Git; le scorciatoie; il ciclo di lavoro. - Tipi, variabili ed espressioni ✔ — tipi e variabili; numeri (
int,long,double,decimal); testo e formati;boole operatori; conversioni eTryParse;vareconst; tipi valore e riferimento. - Decisioni, cicli e raccolte ✔ —
if,switch, pattern matching;enum;for,foreach,while; array,List,Dictionary,HashSet,Queue,Stack. - Metodi ✔ — dichiarare e chiamare; parametri
out,ref, facoltativi, con nome; sovraccarichi; ricorsione; metodi a espressione. - Classi e oggetti ✔ — pensare a oggetti: stato, comportamento, identità, i quattro principi, come si trovano le classi; campi e incapsulamento; proprietà; costruttori;
static;sealed,readonly; record; ciclo di vita e garbage collector; oggetti che lavorano insieme (possedere e indicare); i dati di tutto il programma in una classe statica, il costruttore statico e lo stato globale. - Ereditarietà, interfacce, polimorfismo ✔ — ereditare;
virtual,override,abstract; interfacce; polimorfismo; comporre invece di ereditare. - Delegati ed eventi ✔ —
Action,Func; gruppi di metodi; eventi;EventHandler<T>; la piccola classe che ricorda il contesto. - Generici, null ed estensioni ✔ — tipi e metodi generici; vincoli; nullable e analisi del compilatore; metodi d'estensione; le prime estensioni fluenti (quelle di RAVAL).
- Errori ed eccezioni ✔ —
try/catch/finally; lanciare e definire eccezioni; quando non catturare;IDisposableeusing. - File e testo ✔ —
File,Path,Directory; flussi e codifiche; cartelle per utente; le eccezioni dei file; il quaderno di note in un file CSV, salvato senza mai lasciarlo a metà. - JSON: i dati in un testo ✔ — le regole e i sei tipi di valore; gli array (di numeri, di testi, di oggetti, di array) e che cosa diventano in C#;
JsonSerializer; array di oggetti e oggetti annidati;[JsonIgnore],[JsonPropertyName]; le opzioni (nomi, enum,null, lettere accentate);JsonDocumenteJsonNode;JsonExceptione il percorso; il quaderno in JSON. - XML: documenti fatti di elementi ✔ — dichiarazione, radice, elementi, attributi, commenti, ben formato; entità e CDATA; LINQ to XML: costruire, leggere, modificare;
XmlSerializere i suoi attributi; gli spazi dei nomi;XmlReaderper i file enormi;XmlException; XML o JSON; il ricettario. - Organizzare un programma ✔ — il programma tutto in
Main; responsabilità, coesione, accoppiamento; strati e cartelle; il modello; MVC, MVP con la vista finta, MVVM conINotifyPropertyChanged; l'iniezione delle dipendenze; Singleton, Strategia, Fabbrica, Archivio, Osservatore, Comando; come scegliere. - Thread: più lavori insieme ✔ — che cos'è un thread e che cosa fa il sistema operativo;
Thread,Start,Join,Sleep; passare dati a un thread e riaverne il risultato; primo piano e sfondo;ThreadPool; i dati condivisi: la condizione di gara vista accadere,lock,Interlocked; il deadlock provocato e risolto; quanto costa un thread. Esempi: il download finto in tre thread; il contatore che sbaglia e quello che non sbaglia; due thread che si aspettano per sempre. Diagrammi: linee del tempo dei thread, lo stato condiviso, il deadlock. - Task: il lavoro come oggetto ✔ — dal thread al task, lo stesso esempio nelle due forme;
Task.Run,Task<T>eResult;Wait,WaitAll,WhenAll,WhenAny; continuazioni; le eccezioni eAggregateException; lo stato di un task; perché il pool e non un thread per lavoro. Esempi: calcoli in parallelo con thread e con task a confronto; il primo che risponde; l'errore in un task che nessuno guarda. Diagrammi: thread e task sulla stessa linea del tempo,WhenAlleWhenAny. - async e await ✔ — aspettare senza bloccare;
awaitpasso per passo; i metodiasync Taskeasync Task<T>;Task.DelayeThread.Sleep; su quale thread riprende il codice; file e flussi asincroni;async voide perché evitarlo;ValueTask; che cosa genera il compilatore (la macchina a stati). Esempi: la colazione: in fila, con i thread, conawait; leggere più file insieme; lo stesso lavoro conThread, conContinueWithe conawait. Diagrammi: la pila delle chiamate prima e dopoawait, il metodo spezzato dal compilatore, chi occupa il thread. - async in pratica ✔ —
CancellationTokene i tempi massimi;IProgress<T>;PeriodicTimer;SemaphoreSlimper limitare i lavori insieme;Channel<T>fra chi produce e chi consuma;Parallel.ForeParallel.ForEachAsync;IAsyncEnumerableeawait foreach; gli errori classici (.Resultche blocca, il task dimenticato, illockattorno a unawait). Esempi: lo scaricatore con annullamento e avanzamento; produttore e consumatore con thread e con canale; elaborare cento file quattro alla volta. Diagrammi: l'annullamento che si propaga, il canale, il semaforo.
Appendici
A. Riferimento rapido ✔ · B. Come sono fatte le figure ✔ · C. Glossario ✔
Stato dei capitoli: ✔ scritto · ✎ in bozza · ○ da scrivere.
Gli esempi del volume
Volume 1 — Il linguaggio C# volume 1
Gli esempi di 18 capitoli (229 file) e la libreria RAVAL c8a811e, licenza MIT. Libro c73d832b, 6 novembre 2026.
SHA-256 4ddb42e11b72cc867151a7f1476e124fa900bb02a6bfb4316730455270be633bVolume 1 — The C# Language volume 1
The examples of 18 chapters (230 files) and the RAVAL library c8a811e, MIT license. Book c73d832b, 6 November 2026.
SHA-256 c60b11f75e5d9cdede6ab574a2b2e35e4f74ad7d26901e0061f3e057d906edbdLicenza MIT. Come si aprono e si avviano: la pagina Esempi. Tutti i volumi in un pacchetto solo: Download.