blazor webassembly

in ASPNET Core, Informatica

Blazor – Primo contatto

Reading Time: 2 minutes

Complice il tempo a disposizione nell’ultimo periodo ( 🙁 ), ho iniziato ad avvinarmi (anche se con un pò di sospetto!) a Blazor. Non nascondo un certo timore nell’avvicinarmi a questa nuova tecnologia, dopo le scottature prese con Silverlight e prima ancora Adobe Flash.

A differenza di queste due tecnologie, Blazor basa il suo funzionamento su uno standard (anche se relativamente giovane): il WebAssembly.

Il WebAssembly è un linguaggio a basso livello che consente l’esecuzione di script lato client: il vantaggio fondamentale è quello di poter scrivere script non soltanto in Javascript, ma anche in linguaggi che tipicamente non sono utilizzati in ambiente web, come C# e C++. Il tutto seguendo un processo di compiliazione il cui risultato viene passato successivamente al client.

Il vantaggio di utilizzare WebAssembly è quello di poter scrivere applicazioni ed eseguirla in maniera “quasi nativa”. Utilizzando codice Javascript, infatti, i browser effettuano operazioni di “parsing” del codice, mentre utilizzando WebAssembly “compilato” le applicazioni risultano più performanti e, soprattutto, viene fornita allo sviluppatore un’esperienza molto simile a quella dello sviluppo di applicazioni desktop.

WebAssembly?

L’obiettivo dichiarato degli sviluppatori di WebAssembly è quello di incrementare di 20 volte le performance rispetto allo sviluppo tradizionale. Lo sviluppo è avvenuto con alle spalle colossi come Google, Apple, Microsoft e Mozilla, facendolo diventare in breve tempo una standard. L’unione di queste aziende ha definito di fatto uno standard. Ecco perchè Blazor, potrebbe non essere una scommessa come lo sono stati Silverlight e Flash.

Attualmente possiamo scrivere WebAssembly utilizzando Java, C++ ed altri linguaggi, ma al momento non esiste un framework cosi flessibile e completo come il .NET Framework.

Blazor

Blazor ha una sintassi di programmazione familiare per tutti gli sviluppatori che utilizzano Razor, ormai il linguaggio standard per lo sviluppo di View in ambito Microsoft MVC.

Attualmente è supportato da numerosi browser moderni e nel caso si renda necessario eseguire le applicazioni su browser “datati” è possibile utilizzare un’app Javascript (asm.js). Questo tipo di soluzione è di fatto un polyfill, ovvero un’applicazione che consente di aggiungere particolari funzionalità (in questo caso al browser) che normalmente non sarebbero previste.

L’adozione di un linguaggio di programmazione “nativo” nello sviluppo di soluzioni web, comporta senza dubbio una curva di apprendimento meno ripida: le applicazioni web possono essere scritte come applicazioni desktop, utilizzando direttamente C#.

Blazor basa il suo funzionamento su 4 componenti:

  • Razor: il linguaggio predefinito per la scrittura di View in ambito .NET MVC
  • SignalR: il framework offerto da .NET per l’implementazione della comuncazione tra client e server. Il framework consente creare connessioni (più o meno persistenti) tra client e server sfruttando la migliore tecnologia utilizzaabile lato brower (es. Websocket). Consente di definire procedere che effettuano il push dal server al client
  • Blazor Server: il framework .NET che consente di definire l’interfaccia delle applicazioni ASP.NET Core, con la gestione delle notifiche tramite signalR. La pagine web sono scritte utilizzando HTML, CSS (ovviamente), Razor e C#. Blazor server utilizza signalr per notificare le modifiche alla UI della dell’applicazione.

Nel corso dei prossimi post, realizzerò una semplice applicazione con Bo azor.