Conoscere il rendering Server o WebAssembly a runtime in Blazor

di Morgan Pizzini, in ASP.NET Core,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi