Un po’ di storia

Con la (presunta) morte del Desktop di qualche anno fa, molti hanno deciso di migrare le proprie applicazioni su tecnologie web, risolvendo il problema della compatibilità cross-platform e della distribuzione degli aggiornamenti dell’applicazione. Spostando però una parte dell’elaborazione dai client al server, sono nati tutta una serie di problemi tecnici, tra cui quello dell’esperienza utente, della connettività continua al server e del carico da gestire.

Niente di insuperabile, ma il passaggio non è stato indolore, anzi, molti si sono resi conto che migrare la propria interfaccia da una tecnologia client, come ad esempio Windows Form, a una tecnologia web, come WebForms o MVC, è spesso un rifacimento totale della propria soluzione software.
Nella maggior parte dei casi i benefici superano gli svantaggi e comunque lo sviluppo software si evolve ad una velocità tale da non poter rimanere troppo indietro. In ogni caso, a un certo punto, è nata l’esigenza di avere una user experience più spinta, fortemente limitata dal rendering server-side di ASP.NET. Ed è qui che è stata evidente l’esigenza di eseguire codice nel browser, utilizzando JavaScript.

I programmatori .NET non amano JavaScript per motivi storici, ma con l’aiuto di jQuery e di alcuni helper si è cominciato ad aggiungere funzionalità client alle applicazioni web. Tutto bene fino a quando non si è sentita l’esigenza di spostare sul client tutto il rendering dell’interfaccia, lasciando al server solo le API per il recupero e il salvataggio dei dati.

A quel punto la scelta di una libreria, o addirittura un framework completo è diventato indispensabile per rendere sostenibile lo sviluppo, e soluzioni come AngularReact e Vue hanno cominciato a diffondersi anche tra gli sviluppatori .NET. Angular, in particolare, si è affermato grazie all’utilizzo di Typescript e a un approccio molto vicino ai framework Microsoft.
Con questi strumenti è possibile realizzare quella che viene chiamata una Single Page Application, cioè una singola pagina HTML all’interno della quale l’interfaccia viene creata dinamicamente e la navigazione tra le pagine dell’applicazione avviene senza spostarsi fisicamente.

 

 

Perchè Blazor

Dover imparare un linguaggio come JavaScript e un nuovo framework non è certo una passeggiata, anche se aiutati da TypeScript. Molti hanno preferito attendere per capire come si evolveva il mercato, altri per mancanza di tempo per affrontare il tutto.
Blazor si colloca proprio qui. Risolve esattamente questo problema. E’ possibile, grazie ad esso, riutilizzare le proprie conoscenze del framework .NET per realizzare una Single Page Application. Lo fa in diversi modi, sfruttando diverse tecnologie, e possiamo scegliere la modalità che meglio si adatta alle nostre esigenze.

Con il framework .NET Core 3.0 è stato rilasciato in RTM Blazor Server, che sfrutta SignalR per inviare al browser gli aggiornamenti da fare all’interfaccia, eseguendo comunque l’elaborazione lato server. Con .NET Core 3.1 è stato rilasciato in preview Blazor WebAssembly, che invece scarica nel browser l’applicazione che realizziamo e la esegue grazie allo standard WebAssembly.

 

Perchè investire su Blazor

Se conoscete ASP.NET Core e Razor, il passaggio a Blazor è davvero semplice: è questa la sua forza. Una volta capito (davvero) il concetto di componente, entrambe le versioni vi permettono di sfruttare tutto quello che già sapete e su cui avete investito. Inoltre c’è già un bel po’ di materiale e tanti componenti già pronti per pensare di sviluppare una vera applicazione da mettere in produzione.
Blazor non è nè Silverlight nè LightSwitch, Microsoft ci crede e ci sta investendo. La community di sviluppatori .NET è fortemente interessata e lo ha dimostrato fin dal primo momento. Non c’è nessun plug-in da installare, è tutto basato su standard web, ed è questo che vi garantisce che non farà la fine degli esperimenti del passato.

Microsoft ci crede così tanto che ha annunciato una roadmap da brividi per Blazor: non solo web, ma anche Mobile e Desktop. E’ possibile già provare qualcosa di sperimentale su Mobile, grazie ai Mobile Blazor Bindings basati su Xamarin.Forms: https://devblogs.microsoft.com/aspnet/mobile-blazor-bindings-experiment/

 

Partecipa al prossimo appuntamento di Commit University Smart Shots e scopri di più su Blazor https://www.facebook.com/events/547203472864496/

 

Aponte Michele. “CHE COS’E’ BLAZOR”. BLAZOR DEVELOPER ITALIANI – 02/02/2020
https://blazordev.it/blazor/intro/2020/02/02/che-cosa-e-blazor.html