Blazor – .NET 5 RC1

Qualche giorno fa è stato rilasciato il nuovo .NET 5 (Release Candidate 1) che ha introdotto alcune interessanti novità nel comparto Blazor. La succosa novità che ho provato a velocità warp è stato il neo-introdotto <Virtualize> ovvero il componente built-in che consente di virtualizzare una serie (numerosa) di elementi in modalità scorrimento; a mo’ di ListBox per capirci. Putroppo non funziona benissimo, ancora qualche bug, ma la direzione intrapresa è quella giusta.

Per quanto riguarda le performance, non ho notato i miglioramenti così plateali come quelli dichiarati nei diagrammi ufficiali, ma non ho fatto prove approfondite. Quello che invece proprio non mi è piaciuto è il fantomatico JavaScript Isolation, o almeno così viene pubblicizzato nel readme: e qui davvero non ci siamo 🤬

Blazor si è esplicitamente proposto come alternativa al JavaScript o più propriamente come strumento anti-js. Secondo me questa trovata commerciale è completamente errata. Innanzitutto Blazor non è solo un misero rimpiazzo per JavaScript, ma un framework piuttosto evoluto se confrontato con React, che è praticamente la sua fonte originale (React e Blazor sono pressochè identici a livello virtual-DOM). Poi, implicitamente, si mettono a confronto linguaggi come C# e JavaScript … che è come paragonare una bomba atomica ad un petardo 😁

No, non ci siamo! Secondo me Microsoft deve cambiare completamente direzione. Ormai ne siamo tutti consapevoli: del JavaScript non ci si potrà liberare facilmente. È così, è un dato di fatto e putroppo non possiamo farci nulla: “shit happens“, dicono gli Americani. Secondo me, quindi, il JavaScript sono solo deve essere favorito in Blazor ma addirittura **INCORAGGIATO**. Piuttosto di invocare chiamate JavaScript tramite IJSRuntime e derivati, devo poterlo fare in maniera seamless come fosse una normale chiamata C#. Piuttosto che crearmi un file .js esterno e poi integrarlo nell’HTML, devo poter dichiarare una nuova sezione nel file .razor chiamata @JSCode; esattamente come viene fatto con @Code e il C#.

Favorire quanto più possibile l’interoperabilità tra JavaScript e C#.

— Enfis The Paladin

Insomma, per un vero trionfo di Blazor, io credo che bisogna fare una totale inversione di marcia. Certo, il rischio che i progetti Blazor vengano insozzati da numerose linee di codice JavaScript è molto alto, ne sono consapevole, ma è il prezzo che sfortunatamente bisogna pagare. Chi difende il linguaggio JavaScript solitamente ha visto solo quello o al massimo anche TypeScript (rigorosamente usato con ANY ad ogni angolo 😂). Proviamo ad attirarli nella trappola e facciamogli assaporare il C# 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *