Recentemente è stata rilasciata in anteprima la versione di Blazor WebAssembly 3.2.

Nell’articolo “Introduzione ad ASP.NET Core Blazor (parte 1)” abbiamo già parlato di Blazor WebAssembly e delle sue potenzialità.

In questo articolo scopriamo le novità introdotte da questa release accompagnate dal relativo codice di esempio.

Tra le principali novità vi sono:

  • Avvio semplificato;
  • Riduzione delle dimensioni del pacchetto per il download;
  • Supporto per .NET SignalR Client;

Avvio semplificato

In questo rilascio sono state semplificate le API di avvio e di hosting per Blazor WebAssembly. Inizialmente queste erano progettate per rispecchiare i modelli già presenti di ASP.NET Core ma ci si è resi conto che non tutti i modelli erano necessari.

Come si vede dal codice seguente, in fase di avvio le applicazioni Blazor WebAssembly supportano i metodi asincroni.

E’ possibile anche creare un host predefinito utilizzando il metodo WebAssemblyHostBuilder.CreateDefault (). I componenti e i servizi di root possono essere configurati usando il builder e non è più necessaria una classe di avvio separata. Il codice seguente aggiunge il servizio WeatherService tramite dependency injection.

Una volta creato l’host, è possibile accedere ai servizi tramite la Dependency Injection della radice prima che tutti i componenti siano stati renderizzati. Ciò può essere utile se è necessario eseguire una logica di inizializzazione prima di eseguire il rendering dei componenti.

L’host fornisce così un’istanza di configurazione centrale per l’applicazione. La configurazione non viene popolata con nessun dato per impostazione predefinita ma può essere popolata su richiesta all’interno dell’applicazione.

Riduzione delle dimensioni del pacchetto per il download

Le applicazioni Blazor WebAssembly eseguono il linker .NET IL ad ogni build per eliminare il codice inutilizzato. Nelle versioni precedenti venivano tagliate solo le librerie del framework principale. A partire da questa versione, vengono eliminati anche le librerie inutilizzate del framework Blazor, con una conseguente riduzione delle dimensioni di circa 100 KB. Come in precedenza, possibile disattivare il collegamento impostando la proprietà BlazorLinkOnBuild su false.

Si conclude questa prima parte riepilogativa delle novità di BlazorWebassembly. Nella seconda parte vedremo come implementare il supporto a .NET SignalR Client corredato dal codice di esempio.