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
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire una query su SQL Azure tramite un workflow di GitHub
Il nuovo controllo Range di Blazor 9
Path addizionali per gli asset in ASP.NET Core MVC
Testare l'invio dei messaggi con Event Hubs Data Explorer
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare il trigger SQL con le Azure Function
Limitare le richieste lato server con l'interactive routing di Blazor 8
Configurare lo startup di applicazioni server e client con .NET Aspire
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Evitare il flickering dei componenti nel prerender di Blazor 8
Migrare una service connection a workload identity federation in Azure DevOps
I più letti di oggi
- Configurare lo startup di applicazioni server e client con .NET Aspire
- Collegare applicazioni server e client con .NET Aspire
- Conoscere il rendering Server o WebAssembly a runtime in Blazor
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Simulare Azure Cosmos DB in locale con Docker
- Potenziare la ricerca su Cosmos DB con Full Text Search