Razor & Blazor : Introduction
Razor est une syntaxe, Blazor est un framework qui l'utilise : le décor du web en .NET, et ce qui distingue Razor, Blazor et ASP.NET avant d'entrer dans le concret.
Razor & Blazor : Introduction
Pour faire du web en .NET, deux noms reviennent sans cesse : Razor et Blazor. On les confond souvent. En une phrase : Razor est une syntaxe, Blazor est un framework qui l'utilise. Cette note pose le décor avant d'entrer dans le concret.
# Razor : la syntaxe
Razor est une syntaxe de template : elle permet d'écrire du HTML et du C# dans le même fichier, avec le @ comme trait d'union. C'est compilé et fortement typé : les erreurs sortent à la compilation, pas à l'exécution. On la retrouve dans deux extensions :
.cshtml: les vues ASP.NET (MVC, Razor Pages)..razor: les composants Blazor.
# Blazor : le framework
Blazor est un framework d'interfaces web interactives bâti sur des composants Razor. Son pari : écrire le front-end en C# plutôt qu'en JavaScript. Là où tu prendrais React ou Angular, Blazor te laisse rester en C# : même langage back et front, mêmes modèles partagés, mêmes outils.
Un composant Blazor joue le même rôle qu'un composant React : une brique d'interface réutilisable, avec ses paramètres et son état.
# Razor, Blazor, ASP.NET : qui fait quoi
Trois termes voisins, trois rôles distincts :
| Terme | Ce que c'est |
|---|---|
| Razor | La syntaxe qui mêle HTML et C# (.cshtml, .razor) |
| ASP.NET MVC / Razor Pages | Génèrent du HTML côté serveur avec Razor (web classique, peu ou pas interactif) |
| Blazor | Un framework d'UI interactive fait de composants Razor (.razor) |
Autrement dit : Razor est le point commun. ASP.NET s'en sert pour rendre des pages, Blazor pour construire des applications interactives.
Razor accompagne ASP.NET depuis 2011. Blazor est bien plus récent : il a repris cette syntaxe pour en faire un vrai framework d'UI, stabilisé autour de .NET 5 (2020) et unifié depuis .NET 8.
# À retenir
- Razor = une syntaxe (HTML + C# via
@), compilée et typée, dans.cshtmlet.razor. - Blazor = un framework qui construit des UI interactives en C# à partir de composants Razor.
- ASP.NET MVC / Razor Pages utilisent aussi Razor, mais pour du HTML côté serveur.
- L'atout de Blazor : le même langage (C#) du back au front.
Prochaine étape : entrer dans la syntaxe avec Razor : la syntaxe.
Pour aller plus loin
Razor : la syntaxe
Le @ pour basculer entre HTML et C#, les directives (@page, @inject, @code) et les structures de contrôle : la syntaxe qui fait vivre les fichiers .razor et .cshtml.
Blazor : les composants en bref
Ce qu'est un composant Blazor en une page : un fichier .razor réutilisable, nommé en PascalCase, avec un aperçu et un renvoi vers la note complète.
Blazor : hébergement
Blazor Server, WebAssembly, Auto et Hybrid : où s'exécute ton C#, et les render modes de .NET 8 qui unifient tout ça composant par composant.
Blazor : injection de dépendances
@inject vs [Inject], enregistrement des services, les lifetimes Singleton/Scoped/Transient et le piège du Scoped par circuit en Blazor Server, plus le pattern state container.