Retour aux articles
  • 28.04.2021

Blazor vs React : Quel framework choisir ?

Blazor vs React : Quel framework choisir ?

Jusqu'à récemment, les développeurs C# utilisaient JavaScript, le langage de programmation le plus populaire actuellement pour écrire du code pour les navigateurs. Mais le monde du développement Web a évolué rapidement et les développeurs ne doivent plus dépendre de JavaScript pour le développement d'applications Web haut de gamme. Si tu as déjà pensé à exécuter .NET dans le navigateur sans add-ons ni plugins, Blazor en fait une réalité grâce à une technologie appelée WebAssembly.

 

 

Qu'est-ce que Blazor ?

Blazor est un nouveau framework Web de Microsoft qui permet aux développeurs d'écrire du code pour les navigateurs en C#. Blazor est basé sur des technologies web existantes comme HTML et CSS mais permet au développeur d'utiliser C# et la syntaxe Razor au lieu de JavaScript. Razor est une syntaxe de balisage de modèle populaire pour .NET. Blazor (Browser + Razor) permet aux développeurs de créer une interface utilisateur Web interactive et réutilisable pour les applications côté client écrites en .NET et mises en œuvre sous WebAssembly. Le code client et le code serveur étant tous deux écrits en C#, il est possible de partager le code et les bibliothèques, ce qui fournit une plate-forme permettant de développer des applications monopages (SPA) dynamiques et contemporaines tout en utilisant .NET de bout en bout.

L'aspect le plus remarquable de cette nouvelle technologie est le fait qu'elle exploite les dernières normes Web et ne nécessite pas de plugins ou de modules complémentaires pour fonctionner, ce qui est rendu possible par WebAssembly.

Qu’est ce que WebAssembly ?

WebAssembly, souvent abrégé en Wasm, est une nouvelle norme qui peut être exécutée dans les navigateurs Web modernes et qui apporte une diversité de langages à la plateforme Web. Wasm est un langage de type assembleur de bas niveau présentant un format binaire compact qui permet d'exécuter sur le Web du code écrit dans plusieurs langages tels que C/C++, Java et Rust, avec des performances quasi-natives.

L'objectif de WebAssembly est de faciliter les applications à haute performance sur les pages Web. Toutefois, son format est conçu pour l'exécution et l'intégration dans d'autres environnements et peut également fonctionner avec JavaScript.

Voici quelques caractéristiques de Blazor :

  • Créez des interfaces utilisateur Web avec C# au lieu de JavaScript ou TypeScript.
  • Construire des applications Web progressives (PWA)
  • Créez et utilisez des composants réutilisables écrits en C#.
  • Support complet du débogage côté serveur et débogage avec certaines limitations côté client.
  • Liaison de données avec le DOM HTML (liaison bidirectionnelle limitée).
  • Modèles côté serveur et côté client
  • Open-source
  • Rendu côté serveur (alias pré-rendu) pour une meilleure performance
  • Connexions WebSocket
  • Fonctionnement hors ligne (WebAssembly côté client uniquement)
  • Partage du code entre le client et le serveur en C#
  • Fonctionne dans tous les navigateurs web modernes, y compris les navigateurs mobiles.
  • Le code Blazor dispose de la même sandbox de sécurité que JavaScript.
  • Utilise l'interopérabilité JavaScript pour appeler les frameworks et les bibliothèques JavaScript.
  • Ignite UI pour Blazor

Qu'est-ce qu'Angular ?

Angular, le successeur d'AngularJS, a été créé par Google pour permettre aux développeurs front-end d'interagir avec le front-end et le back-end en même temps. Comme Angular est basé sur JavaScript, il y a beaucoup de ressources avec lesquelles travailler.

Il existe un énorme référentiel de paquets open-source disponibles pour les développeurs Angular, notamment :

  • Ignite UI for Angular
  • NgBootstrap
  • Angular Google Maps
  • NgRx
  • NgTranslate
  • AngularFire
  • NgxTextEditor
  • Angular Material
  • Ng2 Pdf Viewer

Blazor vs Angular : Quel framework choisir ?

Angular existe depuis longtemps, contrairement à Blazor. Il s'agit d'un framework prêt à l'emploi avec un support complet pour les applications MVC/MVVM et il est utilisé par de nombreuses grandes entreprises. Blazor, quant à lui, est en constante évolution et n'a pas encore atteint une maturité suffisante pour rivaliser avec Angular, bien qu'il soit très prometteur.

Angular prend en charge les applications Web progressives (PWA), tandis que Blazor côté serveur ne peut catégoriquement pas fonctionner comme une PWA. L'outillage d'Angular est plus mature, avec une prise en charge complète du débogage dans des IDE comme VS Code.

Angular est également extrêmement populaire. Il existe beaucoup plus de contenu sous forme de cours, de livres, de blogs, de vidéos et d'autres supports pour Angular. Angular dispose d'événements techniques dédiés organisés dans le monde entier, d'une énorme communauté et offre une grande sélection d'intégrations tierces.

Angular offre un temps de chargement plus rapide et une sécurité accrue en utilisant un concept appelé "compilateur en avance sur le temps (AOT)". AOT convertit le code HTML et TypeScript Angular en code JavaScript efficace pendant la phase de construction, avant que le navigateur ne télécharge et n'exécute ce code. La compilation de l'application pendant le processus de construction permet un rendu plus rapide dans le navigateur.

Angular permet également l'utilisation de styles scopés, dans lesquels on peut appliquer un style CSS spécifiquement pour un composant associé.

Grâce aux éléments et modules Angular, ce framework est conçu pour être entièrement personnalisable, ce qui donne plus de pouvoir au développeur et au concepteur. Angular prend en charge des fonctionnalités telles que le chargement paresseux, la norme d'internationalisation I18n pour prendre en charge les langues locales et les paramètres culturels, ainsi que les applications mobiles multiplateformes Ionic pour iOS et Android.

Blazor est étroitement intégré à .NET. La chose la plus importante à observer ici est la possibilité d'atteindre ce que Angular.js peut offrir en utilisant C#. Les développeurs qui préfèrent JavaScript pour le développement Web devraient utiliser Angular.

De plus, il y a un fait à considérer ici, les frameworks JS ont beaucoup évolué depuis leur avènement. Mais Blazor n'est pas encore totalement pris en charge et ne dispose pas des fonctionnalités que les bibliothèques JS peuvent fournir.