
Status: to be written
Volume 10 — System, Deployment and Quality
From the computer of the developer to the computers of the users: the differences between Windows, macOS and Linux, packages, signing, updates, performance and quality.
26 chapters · about 405 pages (estimate) · to be written. Windows, icons, system tray, notifications and global shortcuts; packages for the three systems, self-contained and Native AOT, native dependencies, installers and automatic updates; where time is lost in layout and drawing, virtualized lists, fewer allocations, interfaces that never freeze, logging and error reports. The projects: a final cross-platform application, an updater, a system tray program, automated packaging, a quality dashboard.
Table of contents
The table of contents is in Italian, as the volume is written in Italian; the English edition follows.
La seconda metà dell'ultimo volume della traccia: il volume 9 porta l'applicazione verso periferiche, dati e rete; questo la porta sui computer degli utenti. Integrazione con i sistemi operativi, pacchetti, firma e aggiornamenti, e poi prestazioni, sicurezza e qualità, con le misure come in tutta la collana. Il libro si legge da solo: si apre con un ripasso breve degli strumenti di diagnostica e di memoria del volume 9.
| Parte | Capitoli | Pagine |
|---|---|---|
| Prima di cominciare e ripasso | — | 18 |
| Prima · I sistemi operativi | X.1–X.5 | 70 |
| Seconda · Distribuzione | X.6–X.11 | 85 |
| Terza · Prestazioni, sicurezza e qualità | X.12–X.20 | 120 |
| Progetti | X.21–X.26 | 80 |
| Appendici | A–C | 30 |
| Totale | 26 capitoli | ≈ 405 |
Prima di cominciare ○
Prefazione · la collana · che cosa serve dei volumi precedenti · i tre sistemi del libro (Windows, Linux, macOS) e le macchine virtuali per provare · le librerie, gli strumenti e le licenze.
Ripasso ○
Dal volume 9: memoria e IDisposable, dotnet-counters e dotnet-trace, file e cartelle per utente, P/Invoke.
Parte prima — I sistemi operativi
- X.1 Differenze fra Windows, Linux e macOS ○ — finestre, menu, scorciatoie, file, caratteri: che cosa cambia per l'utente e per il programma.
- X.2 Finestre, icone, barra di sistema e tray icon ○ — l'icona del programma, il menu nell'area di notifica, il menu dell'applicazione su macOS.
- X.3 Notifiche desktop ○ — sui tre sistemi, con le azioni e senza disturbare.
- X.4 Scorciatoie globali e integrazione col sistema ○ — tasti che funzionano anche fuori dalla finestra; associare i tipi di file; avvio con il sistema.
- X.5 Percorsi, permessi, configurazioni ○ — la sandbox di macOS, i permessi di Windows, le cartelle XDG di Linux; configurazioni per utente e per macchina.
Parte seconda — Distribuzione
- X.6 Pacchetti per Windows, macOS e Linux ○ — MSIX e installatori,
.appe.dmg, AppImage, Flatpak,.deb. - X.7 Self-contained e Native AOT ○ — che cosa cambia nella dimensione, nell'avvio, nella memoria; che cosa non funziona con AOT.
- X.8 Dipendenze native e codec da distribuire ○ — Skia, FFmpeg, le librerie dei volumi 5–8: che cosa mettere nel pacchetto e con quale licenza.
- X.9 Firma del software e installatori ○ — certificati, notarizzazione di Apple, SmartScreen di Windows.
- X.10 Aggiornamenti automatici e migrazione delle configurazioni ○ — controllare, scaricare, sostituire, migrare i dati della versione vecchia.
- X.11 Diagnosticare i problemi sui computer degli utenti ○ — registri utili, rapporti di errore, dump raccolti con il consenso.
Parte terza — Prestazioni, sicurezza e qualità
- X.12 Layout e rendering: dove si perde tempo ○ — misurare misura, disposizione e disegno; i colpevoli ricorrenti.
- X.13 Virtualizzare liste e tabelle ○ — centomila righe che scorrono fluide; quando la virtualizzazione si rompe.
- X.14 Meno allocazioni, meno garbage collection ○ —
Span, riserve, strutture; le misure prima e dopo. - X.15 Cache grafica e caricamento asincrono ○ — riprende i volumi 3 e 4 per un'applicazione intera.
- X.16 File e input sicuri ○ — percorsi che escono dalla cartella, file malformati, input dell'utente.
- X.17 Interfacce che non si bloccano mai ○ — un controllo automatico del thread della finestra; i blocchi trovati nei programmi veri.
- X.18 Usabilità e progettazione delle interazioni ○ — tastiera, accessibilità, messaggi d'errore, attese.
- X.19 Registro, telemetria, errori ○ — che cosa registrare, con il consenso, e come leggerlo.
- X.20 Provare su piattaforme ○ — prove automatiche su tre sistemi, figure come prova, integrazione continua.
Progetti
- X.21 Un'applicazione finale multipiattaforma ○ — un programma completo dalla prima riga al pacchetto firmato sui tre sistemi.
- X.22 Aggiornatore ○ — controlla, scarica, verifica la firma, sostituisce e riparte.
- X.23 Programma nella barra di sistema ○ — un monitor del sistema con notifiche e scorciatoie globali.
- X.24 Pacchettizzazione automatica ○ — uno script in C# che compila, firma e produce i pacchetti per i tre sistemi.
- X.25 Cruscotto della qualità ○ — le misure di prestazioni e di memoria di un'applicazione, raccolte a ogni versione.
- X.26 Rapporti di errore ○ — raccolta degli errori dagli utenti fino a un piccolo server con RAVAL.
Appendici
A. Gli inciampi della distribuzione ○ · 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.