Ott 2024 | 2 min di lettura

In occasione di “Codemotion Milan 2024”, ho seguito una sessione intitolata “Blazor: ieri, oggi e domani”, tenuta da Andrea Dottor. Durante l'incontro, si è parlato in maniera approfondita dell'evoluzione di Blazor, da quando è stato presentato nel 2017 fino alle attuali novità e prospettive future.
Blazor vede il suo primo rilascio con .NET Core 3 nel settembre 2019, anche se inizialmente limitato a Blazor Server. Con l'aggiornamento del maggio 2020, è stato introdotto Blazor WebAssembly, permettendo l'esecuzione delle applicazioni direttamente nel browser.
Con l'avvento di .NET 8, Blazor è diventato un framework "Full Stack Web UI", grazie all'aggiunta delle Blazor Web App, una soluzione che integra sviluppo back-end e front-end.
Blazor offre quattro differenti modalità di utilizzo, la prima denominata Blazor Server esegue tutto il codice dell’applicazione sul server, mentre il client è collegato ad esso tramite SignalR, si potrebbe paragonare ai terminali / mainframe di una volta. Se da una parte i vantaggi sono l’accesso diretto a risorse come il file system del server stesso, l’enorme svantaggio è la necessità costante di una connessione.
La seconda modalità, Blazor WebAssembly, sfruttando l’omonima tecnologia permette di eseguire l’applicazione, sempre scritta in C#, all’interno del browser.
Mentre si guadagna la possibilità di eseguire l’applicazione anche offline, il prezzo da pagare è il download di un grosso payload, ovvero l’intera applicazione.
Una terza modalità, chiamata Blazor Web SSR (Static Server-Side Render) delega completamente al server il render delle pagine. In questo modo ogni pagina può essere indicizzata e quindi facilmente rintracciabile dai motori di ricerca. Rendendo le pagine quasi interamente statiche, si va a limitare molto l’interattività della pagina stessa, possibile solo tramite script JavaScript.
Infine, Blazor Web App, può essere visto come un ibrido delle ultime due soluzioni.
Le pagine vengono parzialmente renderizzate lato server, lasciando comunque la possibilità di inserire sezioni della pagina dinamiche, programmabili in C#.
Questo approccio però, va a incidere sulle performance.
Utilizzando .NET 9, sarà inoltre possibile fruire delle nuove funzionalità, come per esempio un nuovo middleware, che fornisce una compressione avanzata e tag basati sul contenuto, miglioramenti nel rendering della pagine e la possibilità di utilizzare direttamente la dependency injection nei costruttori.
Per concludere, il principale vantaggio di Blazor è la possibilità di utilizzare C# sia per il front-end che per il back-end, rendendo possibile la condivisione di codice tra le due aree.