Grazie a .NET 9 abbiamo molta più elasticità nella produzione di applicativi Blazor. Non occorrà più scegliere a priori la modalità Server o WebAsembly, ma sarà in carico allo sviluppatore decidere quale tipologia utilizzare per ogni pagina.
Creando un nuovo progetto Blazor verrano automaticamente creati il progetto startup e una libreria di componenti Razor che verrà referenziata all'interno del Program.cs
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(MiaBlazorApp.Client._Imports).Assembly);
Questa sintassi non ci è nuova, ne abbiamo già parlato all'interno dello script #1471, la novità è all'interno della view e nel suo modo di comprendere il funzionamento corrente. La situazione fino a .NET 8 era la seguente
@(OperatingSystem.IsBrowser() ? "Wasm" : "Server")
Ma ora, con .NET 9, troviamo molte più funzionalità, eccone un esempio riassuntivo
@page "/test"
@rendermode InteractiveAuto
<h2>Render mode: @RendererInfo.Name</h2>
@if (RendererInfo.IsInteractive)
{
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
}
else
{
<p>One moment...</p>
}
Affidandoci alla proprietà RendererInfo possiamo ottenere varie informazioni.
La prima è l'effettiva modalità in cui sta sta girando la view: RendererInfo.Name restituirà Server o WebAssembly. La modalità Server sarà verosimilmente visibile solo al primo caricamento, per dare il tempo materiale al browser di aggiungere alla cache tutte le risorse necessarie per eseguire il WebAssembly.
La seconda proprietà RendererInfo.IsInteractive è quella che potremmo definire una flag: sia che la pagina sia mostrata tramite Server o WebAssembly, ci dirà se è pronta per l'interazione con l'utente. Nell'esempio specifico il bottone verrà mostrato solo quando tutto sarà pronto e caricato correttamente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare la compressione degli artefatti in un workflow di GitHub
From Data to Insight: Exploratory Data Analysis with Python, VS Code and SQL MCP Server
Response streaming con Blazor e .NET 10
Personalizzare i parametri del CSS Scroll Snap
Filtrare i dati in ASP.NET Core usando OpenTelemetry su Azure Monitor
Definire il colore di una scrollbar HTML tramite CSS
Esporre tool MCP con Azure Functions
Effettuare un clone parziale di un repository di GitHub
Semplificare i deployment con le label in Azure Container App
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Abilitare .NET 10 su Azure App Service e Azure Functions
GitHub Quick Review per la valutazione dello stato di compliance dell'organizzazione aziendale


