Blazor
Source : https://learn-blazor.com/
Qu’est-ce que Blazor
Source : https://learn-blazor.com/getting-started/what-is-blazor/
WebAssembly
Avant, JavaScript avait le monopole du développement Web côté Client. En tant que développeurs, on avait le choix du framework : Angular, React, … Mais au final ça reste du JS.
WebAssembly (http://webassembly.org/) change cela.
WebAssemby est une instruction au format binaire pour une machine virtuelle Stack-based.
C’est une target pour la compilation de langage haut niveau comme C, C++, Rust, qui permet le déploiement d’applications client et serveur.
Razor est d’habitude utilisé côté Serveur pour générer dynamiquement du HTML.
Dans Blazor, Razor est utilisé sur le client.
Plus spécifiquement, L’engine Razor tourne lors de la compilation pour générer du code C#.
Razor ⇒ C# Render Tree ⇒ JavaScript ⇒ DOM du navigateur.
Lors d’événements, (clic, …) , un c# Render tree est régénéré avec uniquement les différences à apporter au DOM, que javascript applique.
Rappel DOM (Document Object Model) du navigateur :
Source : https://www.w3schools.com/js/js_htmldom.asp
L’arbre des objets HTML qui permet à JavaScript de modifier chaques éléments HTML, tous les styles CSS, supprimer, ajouter, modifier :
Classes Renderer
Les classes Renderer, qui héritent de Microsoft.AspNetCore.Blazor.Rendering.Renderer fournissent un méchanisme pour gérer les components.
Les components sont les classes qui implémentent Microsoft.AspNetCore.Blazor.Components.IComponent
Les Renderer assurent ces actions aux IComponent :
la hiérarchie
Dispatche des event
Notification lorsque l’UI est updated
Pour tourner sur le browser, Blazor a un BrowserRenderer :
Microsoft.AspNetCore.Blazor.Browser.Rendering.BrowserRenderer
Pour le test unitaire, Blazor a un test Renderer :
Microsoft.AspNetCore.Blazor.Test.Helpers
Obtenir Blazor
Source : https://learn-blazor.com/getting-started/getting-blazor/
Être à jour sur .NET Core, et avoir si possible la dernière extension de Visual Studio 2017.
Installer l’extansion ASP.NET Core Blazor Language Services sur le Marketplace.
Créer une nouvelle application ASP.NET Core pour constater les template Blazor