Application Modernization con Microsoft Blazor e ASP.NET Core

Microsoft Blazor
13 luglio 2022 Applicazioni Web

Le applicazioni aziendali intranet sono ancora in buona parte realizzate con architetture client-server dove l'App è un software installato sul PC dell'utente. In questo articolo vedremo come è possibile migrare questo tipo di applicazioni verso il web senza perdere la user experience utilizzando Blazor e .NET Core.

Application Modernization e obsolescenza tecnologica delle applicazioni desktop

Con l'avvento della banda larga, del cloud e soprattutto dello smart working le vecchie applicazioni desktop stanno velocemente migrando verso soluzioni web based che permettono di essere fruite più facilmente da dovunque.

La migrazione al web ha spostato però una parte dell'elaborazione dai client al server creando una serie di difficoltà tecniche come il carico da gestire server-side e l'esperienza dell'utente. La necessità spesso è quella di avere una user-experience più simile al desktop, cosa che richiede di eseguire parte del codice direttamente nel browser. Per questo sono nati una serie di framework client che facilitano questo approccio come ad esempio Angular, VueJS, React e ora Blazor.

La modernizzazione di una obsoleta applicazione desktop in un'applicazione web permette in sintesi:

  • Essere fruita dovunque
  • Limitare le aperture sui firewall massimizzando la sicurezza digitale
  • Eliminare i costi di installazione e gestione dei client
  • Compatibilità cross-platform e fruizione anche da mobile
  • Rendere più veloce ed immediato il processo di aggiornamento anche in ottica DevOps e metodologia Agile

Che cos'è Blazor

Blazor è il framework Microsoft per la realizzazione di Single Page Application (SPA) con .NET Core, SignalR, WebAssembly e Razor. Così come succede con Angular, React e Vue, con Blazor è possibile creare Single Page Application, cioè una singola pagina HTML dove l'interfaccia è creata dinamicamente e la navigazione all'interno dell'applicazione invece di essere tramite URL avviene senza spostarsi fisicamente.

Blazor permette due approcci diversi:

  • client-side con WebAssembly
  • server-side con SignalR

Nel primo approccio si scarica nel browser l'applicazione e la si esegue grazie allo standard W3C WebAssembly.
Blazor Server invece sfrutta SignalR per inviare al browser gli aggiornamenti da fare all'interfaccia, eseguendo comunque l'elaborazione lato server.

Perché Blazor

Realizzare Single Page Application con user experience accattivanti implica la necessità di imparare un nuovo framework client, normalmente basato su JavaScript o TypeScript, come i già citati Angular, Vue o React. Questo implica una curva di apprendimento per gli sviluppatori, soprattutto se sono abituati a lavorare su .NET. Blazor permette di ridurre notevolmente il gap in quanto il codice è scritto in C#. Si utilizza quindi lo stesso linguaggio sia per il front-end, sia per il back-end.

Blazor non è come Silverlight, è un framework basato su standard open compatibile con tutti i browser moderni e sistemi operativi, oltre ovviamente essere free e open source come il framework .NET Core.
Un'altra feature interessante è la possibilità di interoperabilità con JavaScript che permette di riutilizzare controlli o framework preesistenti. Esiste inoltre un ecosistema di librerie di UI controls di terze parti già molto folto.

Tags: