19 novembre 2023 15:22
Blazor .Net 8 Interactive Render Modes: tutti i Templates che può generare Visual Studio 17.8
Con l'avvento di .NET 8 Blazor ha introdotto il concetto di "Interactive Modes" ovvero come e se la nostra pagina o componente si comporta e si renderizza dal punto di vista dell'interattività.
Senza entrare nel dettaglio, in quanto ci sono già decine di video e tutorial che lo spiegano meglio di me (come quelli di Jon Hilton o Patrick God), possiamo dire che una Blazor Web App può avere 4 tipi di interattività
- Nessuna
- Lato Server
- Lato Client (WebAssembly)
- Auto (la prima volta lato server mentre in background viene scaricata la dll webassembly per le volte successive)
declinati in due modi:
- Per Pagina/Componente
- Globale
Giocando sulle 8 combinazioni possibili ho creato una Solution che le contenesse tutte per vedere dove erano le differenze (soprattutto nel program.cs e nelle direttive di apertura delle varie pagine come la counter.razor)
Già che c'ero ho aggiunto anche la "WebAssembly Standalone" (progetto #09) sempre basata su .NET8 e 3 progetti .NET7 ancora presenti in Vs2022 17.8 (la #10 è la server, la #11 e #12 le due webassembly con e senza API asp.net core hosted)
Trovate il repo qui
https://github.com/SandroRiz/Blazor8DifferentModes
UPDATE 24/12/23: Ho dovuto fare un altro progetto demo per testare un'altra differenza ovvero se il "prerendering" è attivato oppure no
In questo progettino demo https://github.com/SandroRiz/BlazorDifferentModes potete infatti vedere alcune differenze ad esempio nell'uso del componente <PageTitle> nel caso le pagine SSR abbiano o meno StreamRendering e le pagine interattive (Server, WebAssembly o Auto) abbiano il prerendering a true o false