Blazor WASM vs Blazor Server Blazor WebAssembly Blazor Server Pro: - Dimensione download, load time rapido - Può utilizzare tutto il runtime .NET - Il codice è tutto sul server - Semplifica l’architettura Contro: - Latenza - Nessun supporto offline - Consuma più risorse server - Scalabilità SignalR (risolvibile) Pro: - Vera SPA, interattività completa - Utilizza le risorse del client - Supporto offline, siti statici, scenari PWA Contro: - Dimensione del download - Richiede WebAssembly - Ancora in preview
Cosa serve per cominciare https://dotnet.microsoft.com/download/dotnet-core L’ultima versione di .NET Core https://code.visualstudio.com/ Visual Studio Code https://visualstudio.microsoft.com/it/vs/community/ Visual Studio 2019 Community dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.2.0-preview1.20073.1 L’ultima versione dei template Blazor https://visualstudio.microsoft.com/it/vs/mac/ Visual Studio for Mac
Creare un Single Page Application - Tutta l’applicazione viene costruita dinamicamente a partire da un’unica pagina - La navigazione viene gestita da un apposito componente
Blazor Components I singoli elementi della pagina sono dei componenti: - formano un albero di componenti - della giusta dimensione (SoC) - riutilizzabili e NON accoppiati
Blazor Components - Tecnicamente sono dei file .razor che contengono Markup e codice - Il nome del file coincide con il TAG del componente NavMenu.razor <NavMenu />
Gestione della navigazione: Routing @Body <Router></Router> - Tutte le richieste di navigazione vengono gestite dal componente Router - Ogni volta che viene richiesta una pagina il router la renderizza nel @Body
Blazor Roadmap Blazor Server Web app Tutte le interazioni vengono gestite sul server HTML Prerenderizzato Blazor WebAssembly Web app con esecuzione sul client Caricata dal web server Può funzionare offline con i Service Worker Blazor PWA – OS installed Si presenta come una app nativa (con una finestra propria) Funziona sia offline che online Blazor Hybrid Utilizza Electron / WebView con un rendering nativo .NET Si presenta come una app nativa (con una finestra propria) Funziona sia offline che online Web Desktop + Mobile Blazor Native Stesso modello di programmazione, ma con un rendering della UI non HTML