
Status: to be written
Volume 9 — Devices, Data and Network
Peripherals, files, databases, network and native code: everything a real desktop application must be able to touch outside its window.
28 chapters · about 425 pages (estimate) · to be written. Advanced mouse, keyboard, touch and pen, gamepads, serial ports and instruments; large files, databases and synchronization; HTTP, sockets and services; native code, reusable control libraries, memory and diagnostics. The projects: a measurement station, a client with its server, a pen whiteboard, a program with plugins.
Table of contents
The table of contents is in Italian, as the volume is written in Italian; the English edition follows.
L'ultimo volume della traccia («dispositivi, rete, sistema, distribuzione e qualità») aveva 44 capitoli, circa 640 pagine. Diviso in due libri interi, senza togliere niente: questo porta l'applicazione verso il mondo esterno (periferiche, dati, rete, codice nativo); il volume 10 la porta sui computer degli utenti (sistemi operativi, distribuzione, prestazioni, qualità).
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare | — | 8 |
| Prima · Input e dispositivi | IX.1–IX.8 | 110 |
| Seconda · File e dati | IX.9–IX.13 | 70 |
| Terza · Rete | IX.14–IX.17 | 55 |
| Quarta · Interoperabilità e programmazione avanzata | IX.18–IX.24 | 95 |
| Progetti | IX.25–IX.28 | 55 |
| Appendici | A–C | 30 |
| Totale | 28 capitoli | ≈ 425 |
Prima di cominciare ○
Prefazione · la collana · che cosa serve dei volumi precedenti (thread e async del volume 1, architetture e Dispatcher del volume 2) · l'hardware del libro e come provare senza · le librerie e le licenze.
Parte prima — Input e dispositivi
- IX.1 Mouse, tastiera e touch avanzati ○ — gesti, più dita, precisione del puntatore; le differenze fra sistemi.
- IX.2 Tavolette grafiche e pressione della penna ○ — pressione, inclinazione, gomma; un pennello che risponde.
- IX.3 Gamepad, joystick e dispositivi HID ○ — leggere i controlli, la vibrazione, gli HID generici.
- IX.4 Porte seriali e microcontrollori ○ —
System.IO.Ports, protocolli a righe e binari, un microcontrollore che manda misure. - IX.5 Dispositivi di cattura ○ — elencare webcam e schede di acquisizione e sceglierne una (il video vero e proprio è nel volume 8).
- IX.6 Scanner, stampanti e periferiche ○ — stampare da Avalonia sui tre sistemi; acquisire da uno scanner.
- IX.7 Periferiche che si collegano e scollegano ○ — accorgersene mentre il programma gira, senza cadere.
- IX.8 Permessi e differenze fra sistemi operativi ○ — chi chiede il permesso, quando, e che cosa succede se l'utente dice no.
Parte seconda — File e dati
- IX.9 File system, percorsi, cartelle per utente ○ — dove mettere configurazioni, dati e cache su ogni sistema.
- IX.10 JSON, XML e serializzazione ○ — dopo il volume 1: versioni dei formati, migrazioni, generatori di sorgenti e Native AOT.
- IX.11 SQLite ○ — Microsoft.Data.Sqlite: tabelle, transazioni, migrazioni, prestazioni; i dati in un elenco virtuale.
- IX.12 Stream, buffer, file grandi ○ — leggere gigabyte senza memoria; file mappati;
Pipelines. - IX.13 Cache e risorse ○ — cache in memoria e su disco, quando invalidarle, risorse incorporate.
Parte terza — Rete
- IX.14 HTTP: download e upload ○ —
HttpClientfatto bene: tempi, ripetizioni, avanzamento, annullamento. - IX.15 WebSocket e comunicazione in tempo reale ○ — un cruscotto che riceve dati dal server.
- IX.16 Un server di API con RAVAL su Kestrel ○ — il server JSON di RAVAL: rotte, errori, documentazione.
- IX.17 Sicurezza di base ○ — HTTPS, password come hash, token; che cosa non salvare mai in chiaro.
Parte quarta — Interoperabilità e programmazione avanzata
- IX.18 API native di Windows, Linux e macOS ○ — quando servono e come si chiamano senza rompere gli altri sistemi.
- IX.19 P/Invoke e librerie native ○ —
LibraryImport, strutture, callback, memoria; distribuire la libreria. - IX.20 Programmazione reattiva e flussi di eventi ○ — eventi che diventano flussi; filtrare, unire, rallentare.
- IX.21 Plugin e moduli caricabili ○ —
AssemblyLoadContext, interfacce comuni, scaricare un plugin. - IX.22 Librerie di controlli riutilizzabili ○ — un pacchetto NuGet di controlli Avalonia, con temi e documentazione.
- IX.23 Memoria, rilascio delle risorse, garbage collector ○ —
IDisposablefatto bene, perdite tipiche delle interfacce, misure. - IX.24 Diagnostica, profiling, debugging ○ —
dotnet-counters,dotnet-trace, dump di memoria; il debugger oltre i punti di interruzione.
Progetti
- IX.25 Stazione di misura ○ — un microcontrollore sulla seriale, i dati in SQLite, i grafici dal vivo.
- IX.26 Client e server ○ — un'applicazione Avalonia e il suo server di API con RAVAL, autenticazione compresa.
- IX.27 Lavagna con la penna ○ — pressione, livelli, salvataggio, esportazione.
- IX.28 Un programma con i plugin ○ — un'applicazione che si estende con moduli caricati da una cartella.
Appendici
A. Gli inciampi ○ · B. Riferimento rapido ○ · C. Glossario ○
Chapter status: ✔ written · ✎ draft · ○ to be written.
The examples of the volume
The examples of this volume will come with its chapters.