Il capitolo che apre il libro, cosi' come e' stampato: come e' fatto il volume, a chi e' rivolto, che cosa serve.
Prima di cominciare
Prefazione
Un programma con le finestre, che gira uguale su Windows, macOS e Linux, scritto in un linguaggio solo: è quello che questo libro insegna a costruire. Il linguaggio è C#, su .NET 10; le finestre le disegna Avalonia, una libreria aperta che non usa i controlli del sistema operativo ma disegna tutto da sé, e quindi si comporta allo stesso modo dappertutto (capitolo II.1).
Quasi tutto quello che si trova su Avalonia descrive le finestre in XAML, un linguaggio a marcatori simile all'HTML, e le collega al codice con un compilatore apposta. Funziona, ma per chi comincia vuol dire imparare due linguaggi e una serie di errori che compaiono solo a programma avviato. Qui tutto è C#: una finestra si costruisce con new, le proprietà si assegnano, gli eventi si collegano a metodi. Il compilatore controlla ogni riga, l'editor completa i nomi, il debugger si ferma dove serve. Il titolo della collana, Avalonia solo in codice, viene da qui.
La collana ha dieci volumi:
- Il linguaggio C#: tipi, oggetti, generici, eccezioni, file, thread,
Taskeasync. - Interfacce desktop: Avalonia in codice, i controlli, i temi, le architetture e i thread dell'interfaccia. Questo libro.
- Grafica 2D: il disegno e le animazioni con Avalonia.
- Grafica 2D avanzata: Skia, Direct2D, le immagini.
- Grafica 3D: il 3D da zero con OpenGL.
- Grafica 3D avanzata: Vulkan e Direct3D.
- Audio.
- Video.
- Dispositivi, dati e rete.
- Sistema, distribuzione e qualità.
Ogni capitolo porta il numero del volume: II.10 è il decimo capitolo di questo libro, §II.10.3 il terzo paragrafo di quel capitolo. Un rimando con il numero I, come «(capitolo I.16)», indica il volume 1; quello che serve di quei capitoli è riassunto nel ripasso che apre il libro, con il rimando al capitolo dove l'argomento è spiegato per intero.
A chi è rivolto
- A chi ha letto il volume 1, o conosce C# allo stesso punto: classi e interfacce, delegati ed eventi, generici,
Taskeawait. Il ripasso dice esattamente che cosa si dà per noto. - A chi conosce C# ma non ha mai costruito un programma con le finestre: dalla prima parte in poi, in ordine.
- A chi viene da WinForms, WPF o da Avalonia con XAML: la prima e la seconda parte mostrano gli stessi concetti scritti in codice, e la terza e la quarta parte quello che quasi sempre manca nei tutorial, le architetture e i thread.
Serve un computer con Windows, macOS o Linux, e la voglia di scrivere gli esempi invece di leggerli soltanto.
Come è fatto il libro
| Parte | Capitoli | Che cosa |
|---|---|---|
| Ripasso | — | il C# del volume 1 che questo libro usa, in poche pagine |
| Prima · Avalonia: le basi in codice | II.1–II.13 | il progetto, la finestra, gli eventi, le proprietà, il layout, i temi |
| Seconda · Controlli e interfacce | II.14–II.25 | i controlli, i menu, i dialoghi, gli stili, la tastiera, l'accessibilità |
| Terza · Architetture | II.26–II.36 | gli strati, il modello, le macchine a stati, MVC, MVVM, i servizi, le prove |
| Quarta · Thread, Task e concorrenza | II.37–II.40 | il thread della finestra, await, l'annullamento, i dati che arrivano |
| Progetto | II.41 | un cruscotto in tempo reale, con tutto quello che c'è prima |
| Appendici | A–D | gli inciampi, il riferimento rapido, come sono fatte le figure, il glossario |
Ogni capitolo comincia con Cosa imparerai e finisce con tre riquadri: Errori comuni, gli sbagli che si fanno davvero, con il rimedio; Da ricordare, il capitolo in poche righe; Esercizi, da fare con l'editor aperto. È lì che si impara davvero.
I percorsi di lettura
- Dal volume 1. Tutto, in ordine; il ripasso si può saltare, o tenere come promemoria.
- Conosci già C#. Leggi il ripasso per vedere se manca qualcosa, poi dalla prima parte.
- Vieni da XAML. Leggi i capitoli II.1–II.9, che mostrano in codice quello che conosci in marcatori; poi la seconda parte dove ti serve, e la terza e la quarta parte per intero.
- Vuoi una finestra subito. Capitoli II.1–II.5, poi II.14 e II.15 per i controlli e II.31 per MVVM; il resto quando serve.
Le regole della casa
Il codice degli esempi segue poche regole, sempre le stesse, e il libro le spiega strada facendo:
- solo .NET, Avalonia e RAVAL. Nessun'altra libreria, salvo dove un capitolo lo dice e spiega perché (le tabelle del capitolo II.16, le prove del II.36), e sempre con una licenza aperta;
- tutto in C#, senza XAML;
- i nomi in italiano, quando sono nostri:
Conteggio,MostraErrore,VistaCruscotto; - una classe per file, con il nome del file, e un commento su ogni metodo che dice che cosa fa e perché;
- ogni gestore è un metodo con un nome, che dice che cosa fa:
Salva,Annulla,MacchinaScelta; - righe corte, entro 80 caratteri, perché il codice si legga sulla pagina;
- niente detto, tutto misurato: quando il libro dice che Avalonia si comporta in un certo modo, c'è stato un programma che lo ha provato, e il capitolo lo racconta.
Gli strumenti e il codice degli esempi
Servono:
- l'SDK di .NET 10, gratuito, che il capitolo I.1 installa passo per passo;
- un editor: il libro usa Visual Studio Code (capitolo I.2), ma va bene qualunque editor per C#;
- Avalonia 12.1.4, che i progetti scaricano da soli, e RAVAL, la libreria del libro, che trovano accanto, compilata, come spiega il capitolo II.2.
Tutto il codice del libro, la libreria RAVAL compilata e un progetto per ogni programma degli esempi, si scarica gratuitamente dal sito del libro, https://raval.aratoingegneria.it (capitolo II.2). RAVAL e gli esempi hanno la licenza MIT: puoi usarli, cambiarli e metterli nei tuoi programmi, anche in quelli che vendi, conservando l'avviso di copyright.
Ogni programma degli esempi è stato compilato senza un avviso, e ogni figura è stata disegnata dal programma vero (appendice C).
Convenzioni tipografiche
- Un termine nuovo è in grassetto la prima volta, ed è nel glossario (appendice D).
- Il codice, i nomi delle classi, dei metodi e dei file sono in
carattere fisso. - I nomi dei pulsanti e delle voci di menu sono in corsivo, come li vedi sullo schermo: Salva, File → Apri.
- I tasti si scrivono come si premono: Invio, Esc, Tab, Ctrl+S. Su macOS, dove il libro scrive Ctrl, di solito è Cmd.
- I percorsi sono scritti come su Windows,
C:\Esempi\II.2; su macOS e Linux le barre vanno dall'altra parte, e il capitolo lo dice dove cambia qualcosa di più. - I rimandi dicono il capitolo, «(capitolo II.37)», o il paragrafo, «§II.2.6».
- Nelle figure delle finestre i numeri misurati (un tempo, una pausa, un conteggio) cambiano un poco ogni volta che il programma gira: il testo li cita come li mostra la figura.