Passa al contenuto principale

WebAPI + Angular come app desktop

Una soluzione C# WebAPI + Angular può essere distribuita come applicazione desktop senza riscrivere il frontend né il backend. Le strategie disponibili differiscono per complessità, peso del pacchetto, portabilità e grado di integrazione con il sistema operativo.

Confronto

StrategiaCross-platformPeso bundleBackendComplessità
Self-hosted KestrelMinimoIn-processBassa
Electron.NET~150 MB+In-processMedia
Electron puro~150 MB+Child processAlta
WebView2Solo WindowsLeggeroIn-processMedia
Tauri~10 MBSidecar esternoAlta

Per la distribuzione su Windows (installer, percorsi dati, SQLite) vedere Installer Windows con NSIS.

Come scegliere

Serve cross-platform?
├── No (solo Windows)
│ └── → WebView2 (leggero, Edge già installato)
└── Sì
├── Il bundle size è un vincolo?
│ ├── Sì → Self-hosted Kestrel (minimo) o Tauri (leggero, ma backend sidecar)
│ └── No
│ ├── Vuoi un'integrazione stretta ASP.NET Core + shell desktop?
│ │ ├── Sì → Electron.NET
│ │ └── No → Electron puro
│ └── Non hai vincoli particolari → Self-hosted Kestrel

Nota su Tauri

Tauri usa il webview nativo del sistema operativo (WebKit su macOS/Linux, WebView2 su Windows) e un backend nativo in Rust. L'API C# non può girare in-process: va avviata come processo separato (sidecar). Tauri è la scelta giusta solo se il bundle size è un requisito stringente e si è disposti a gestire il ciclo di vita del processo backend separatamente.