Blazor est une technologie de création de site web en .NET qui se divise en 2 variantes :
- Blazor Server, orienté back-end
- Blazor WASM (WebAssembly), orienté front-end.
Si le développement est assez similaire de l'une à l'autre, la différence de paradigme implique des écarts non négligeables en termes de fonctionnement, de performances, et de sécurité ; Il est donc nécessaire de faire un choix en fonction des besoins.
Sommaire
Comparatif
Blazor Server | Blazor WASM |
- Fonctionnalités .NET complètes - Application via websocket - Accès direct aux données | - Fonctionnalités WebAssembly - Application hors ligne - Récupération des données via API |
Fonctionnalités
Côté Server, aucune limitation en termes de fonctionnalités ; tous les calculs sont faits sur le serveur, qui peut donc accéder à tous les outils .NET disponibles, notamment la connexion directe à la base de données.
Si c’est un gros avantage, notamment pour un accès plus rapide et sécurisé aux données, cela requiert une connexion permanente du client au serveur, via l’utilisation de SignalR.
WASM, quant à lui, effectue ses calculs en local via WebAssembly, ce qui permet l’utilisation hors-ligne de l’application ; la création de Progressive Web App est également supportée, permettant l’installation sur mobile pour une utilisation facilitée.
En contrepartie, le fonctionnement de l’application nécessite WebAssembly, dont les fonctionnalités sont moindres par rapport au framework .NET.
Performances
Suivant le paradigme choisi, la gestion des ressources sera très différente.
Blazor Server se charge de tous les calculs pour le client, plaçant l'entièreté de la charge sur le serveur ; plus y aura d’utilisateurs, plus il faudra de ressources sur le serveur, et plus les coûts d’infrastructure seront importants.
Il est également à noter que, chaque action nécessitant un échange avec le serveur, une légère latence dans les interactions sera inévitable.
De son côté, Blazor WASM laissera la charge à l’utilisateur, dépendant donc des ressources locales de la machine cliente.
Si cela est un gros avantage côté infrastructure, une application un peu trop demandeuse pourrait avoir du mal à s’exécuter sur des machines trop peu performantes.
Sécurité
L’accès aux données mentionné plus haut n’est pas le seul aspect de la sécurité à prendre en compte.
Blazor Server, contrairement à son concurrent, ne transmettra que la partie du code nécessaire à échanger avec le serveur, évitant ainsi toute compromission ou altération.
Poids de l’application
Enfin, il faut également penser au poids de l’application.
Ici, Blazor Server sera encore une fois à son avantage ; ne transmettant qu’une partie du code, le poids des données téléchargées par le client sera réduit par rapport à Blazor WASM, pour lequel il faudra télécharger l’entièreté de l’application.
Pour conclure
Dans le cas d’une application hors-ligne, notamment avec les Progressive Web Apps, Blazor WASM sera le choix évident.
Il sera également une option très avantageuse si le nombre d’utilisateurs attendu est grand, afin de réduire les coûts.
Au contraire, pour une application accédant à des données sensibles et/ou avec peu d’utilisateurs, par exemple un back office d’administration, il conviendra plutôt de choisir Blazor Server.
Les deux options ont ainsi leurs avantages et inconvénients, et il conviendra d’analyser le besoin avec attention afin de choisir la solution la plus adaptée.
En tant qu’agence digitale spécialisée en développement .NET, nous accompagnons nos clients dans le choix entre Blazor Server et Blazor WASM, selon leurs besoins en performance, sécurité et évolutivité. N'hésitez pas à contacter notre équipe conseil pour en discuter !