In questo articolo:

Cos’è e perché utilizzare Blazor?

Le differenze tra Blazor Server e Blazor WebAssembly

Quale scegliere?

Al momento, Blazor offre due diversi modelli di hosting tra cui scegliere: la versione Server e quella WebAssembly. Daremo un’occhiata a ciò che ognuno dei due ha da offrire e quali sono le differenze. Ma prima di addentrarci sui pro e contro, occorre chiarire la seguente domanda.

Cos’è e perché utilizzare Blazor?

Rilasciato con la versione 3.1 del .NET Core, Blazor è un Framework per la creazione di interfacce web interattive utilizzando il linguaggio C#, HTML e CSS.

Tra le sue caratteristiche principali vi sono:

Aggiornamento della pagina
Blazor ricarica solo le parti della pagina che devono essere aggiornate quando si seleziona un collegamento interno. Ciò non solo riduce il carico sul server ma lo rende più immediato per l’utente finale.

Utilizzo di C# per le funzionalità lato client
Finora, qualsiasi funzionalità del browser è stata sviluppata in JavaScript o utilizzando i vari framework basati su di esso o su TypeScript: Angular, React, VUE, ecc.. Blazor consente di scrivere le funzionalità per l’interfacia utente (lato client) direttamente in C#.

Alcuni JavaScript saranno ancora presenti, come ad esempio quelli utilizzati per SignalR che consente a Blazor Server di inviare notifiche asincrone al browser. Ma gran parte delle funzionalità protranno essere essere scritte direttamente con C#.

Componenti riutilizzabili
Blazor utilizza i componenti Razor che possono essere nidificati, riutilizzati e condivisi tra i progetti. In sostanza, un componente rappresenta un elemento dell’interfaccia utente (UI).

Se vuoi approfondire Blazor per sviluppare una Single Page Application ti suggerisco questo libro di Michele Aponte.undefined

Le differenze tra Blazor Server e Blazor WebAssembly

Ora che abbiamo riepilogato alcuni motivi per utilizzare Blazor andiamo a vedere le differenze.

In Blazor Server il codice viene elaborato sul server e tramite una connessione SignalR vi è lo scambio dei dati tra il client ed il server. E’ perciò necessaria una connessione internet costante (on-line).

blazor-server

Con Blazor WebAssembly l’applicazione viene eseguita direttamente nel browser. Gli aggiornamenti dell’interfaccia utente e la gestione degli eventi si verificano nello stesso processo. Il codice, le relative dipendenze e il Runtime .NET vengono scaricati nel browser e di conseguenza può essere utilizzato off-line.

blazor-webassembly

Quale scegliere?

Come si risponde sempre in questi casi, dipende da quale applicazione stai realizzando!

Se stai sviluppando un e-commerce o un applicazione web che fa largo uso dei dati, Blazor Server può essere la scelta più idonea.

Se stai realizzando una calcolatrice o un’applicazione stand-alone interattiva, Blazor WebAssembly è un’ottima scelta.

Ma vi è anche una terza via, la soluzione ibrida. Infatti, se si desidera sviluppare un’applicazione leggera che richiede una limitata interazione tra client e server, possiamo sviluppare il backend con Blazor Server ed il frontend con Blazor WebAssembly. Grazie all’utilizzo di API è possibile effettuare lo scambio dei dati tra i due hosting model.

Si conclude qui questa parte introduttiva sui modelli hosting di Blazor. Nell’articolo “Blazor Server: sviluppare una SPA con accesso ai dati” andremo a creare un’applicazione di esempio con accesso ai dati per vedere in dettaglio il funzionamento delle applicazioni Blazor Server.