The chapter that opens the book, as it is printed: how the volume is made, who it is for, what you need.
This page is available in Italian only for now.
Prima di cominciare
Prefazione
Il volume 2 ha costruito finestre con i controlli che Avalonia dà già fatti: testi, pulsanti, liste, tabelle, menu. Questo libro va un passo sotto: disegnare. Un grafico che si aggiorna cinquanta volte al secondo, un editor in cui si trascinano forme, un oggetto che si muove lungo una curva, una pioggia di particelle: niente di questo è un controllo pronto, e tutto si fa con gli stessi strumenti, che sono il soggetto del libro.
Il primo strumento è quello che Avalonia usa per disegnare i suoi stessi controlli: il metodo Render e il DrawingContext, con penne, pennelli, geometrie, trasformazioni e testo. Il volume 2 ne ha mostrato un assaggio nel grafico del cruscotto (capitolo II.41); qui lo si studia per intero, fino a un editor vettoriale. Poi vengono le animazioni, il tempo e gli effetti, fino alle particelle. Tutto con quello che Avalonia dà già, misurando che cosa costa e su quale thread lavora.
Il volume 4 continua da qui: scende in Skia, la libreria che sta sotto Avalonia, passa per Direct2D, il disegno nativo di Windows, e finisce con le immagini, dai formati dei file fino ai pixel uno per uno, e con cinque progetti. I due libri erano uno solo, diviso perché superava le 800 pagine: per questo, qua e là, un capitolo rimanda avanti a un capitolo IV.
Tutto è ancora C#, senza XAML, e senza librerie a pagamento: Avalonia (la parte gratuita) e SkiaSharp, che arriva con Avalonia, tutte e due con licenza MIT.
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.
- Grafica 2D: il disegno e le animazioni con Avalonia. Questo libro.
- Grafica 2D avanzata: Skia, Direct2D, le immagini, i progetti.
- 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: III.4 è il quarto capitolo di questo libro, §III.4.2 il secondo paragrafo di quel capitolo. Un rimando con il numero I, II o IV, come «(capitolo II.20)», indica il volume 1, 2 o 4.
Che cosa serve dei volumi 1 e 2
Il libro dà per noto il C# del volume 1 e le basi di Avalonia del volume 2. In particolare:
| Argomento | Dove |
|---|---|
| classi, interfacce, eventi, generici, eccezioni | capitoli I.6–I.10 |
thread, Task, await, l'annullamento | capitoli I.15–I.18 |
| il progetto Avalonia, la finestra, il ciclo di vita, RAVAL | capitoli II.2–II.5 |
| eventi instradati, proprietà di Avalonia, alberi dei controlli | capitoli II.7–II.9 |
| layout e pannelli, misure, DPI e scaling | capitoli II.10–II.12 |
| risorse, temi, colori del tema nei controlli propri | capitoli II.13 e II.20 |
| puntatore, rotella, tastiera e fuoco | capitolo II.23 |
il thread della finestra, il Dispatcher, i timer | capitoli II.37 e II.39 |
| MVVM, comandi, prove con Avalonia.Headless | capitoli II.31, II.32 e II.36 |
Chi conosce già Avalonia può cominciare dal capitolo III.1 e tornare a queste pagine solo quando un rimando lo chiede.
Come è fatto il libro
| Parte | Capitoli | Che cosa |
|---|---|---|
| Prima · Disegnare con Avalonia | III.1–III.17 | come disegna Avalonia, forme, geometrie, pennelli, trasformazioni, controlli che disegnano, testo, grafici, un editor |
| Seconda · Animazioni ed effetti | III.18–III.26 | il tempo, le animazioni, le transizioni, il fotogramma, le particelle, gli effetti |
| Appendici | A–C | gli inciampi, il riferimento rapido del disegno, 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.
I percorsi di lettura
- Dal volume 2. Tutto, in ordine.
- Ti servono i grafici. Capitoli III.1–III.6, poi III.12 e III.13; per i dati che arrivano veloci, il capitolo IV.9 del volume 4.
- Ti servono le immagini. Capitoli III.1, III.6 e III.8, poi la terza parte del volume 4.
- Vuoi animare. Capitoli III.1–III.6, poi la seconda parte.
- Lavori solo su Windows e ti chiedi se Direct2D conviene. Capitoli III.1 e III.16, poi la seconda parte del volume 4, che finisce con le misure dello stesso grafico nei tre modi.
Le regole della casa
Le stesse dei volumi 1 e 2:
- solo .NET, Avalonia e RAVAL, più le librerie che un capitolo nomina e spiega, sempre gratuite e con una licenza che permette di usarle anche nei programmi che si vendono;
- tutto in C#, senza XAML;
- i nomi in italiano, quando sono nostri:
Girandola,Tela,Oscilloscopio; - 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;
- righe corte, entro 80 caratteri;
- niente detto, tutto misurato: quando il libro dice quanto costa un disegno, quale thread lo esegue o che cosa sceglie Avalonia su un certo computer, c'è stato un programma che lo ha misurato, e il capitolo lo racconta.
Gli strumenti e il codice degli esempi
Servono l'SDK di .NET 10, un editor per C# (il libro usa Visual Studio Code, capitolo I.2), Avalonia 12.1.4 e RAVAL 2.0.0, come nel volume 2. SkiaSharp (3.119), che alcuni capitoli usano direttamente, arriva con Avalonia.
Il codice si scarica gratuitamente dal sito del libro, https://raval.aratoingegneria.it (capitolo II.2). RAVAL e gli esempi hanno la licenza MIT. Ogni programma degli esempi è stato compilato senza un avviso, e ogni figura è stata disegnata dal programma vero.
Convenzioni tipografiche
- Un termine nuovo è in grassetto la prima volta, ed è nel glossario (appendice C).
- 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: Ferma, File → Esporta.
- I percorsi sono scritti come su Windows,
C:\Esempi\III.1. - I rimandi dicono il capitolo, «(capitolo III.6)», o il paragrafo, «§III.6.2».
- I numeri misurati (fotogrammi al secondo, millisecondi per fotogramma) cambiano da un computer all'altro e da una volta all'altra: il testo li cita come li mostra la figura, e dice su che macchina sono stati presi.