- un modèle de composant pour construire des interfaces utilisateur composables ;
- le routage ;
- la mise en page ;
- les formulaires ainsi que leur validation ;
- l'injection de dépendances ;
- l'interopérabilité avec JavaScript ;
- le rechargement à chaud pendant le développement ;
- le rendu côté serveur ;
- le débogage .NET à la fois dans le navigateur et dans l'IDE ;
- le support d'IntelliSense et de différents outils ;
- le support de vieux navigateurs (non-WebAssembly) via asm.js ;
- la publication d'applications ainsi que la réduction de leur taille.
Cette fois-ci, Microsoft a annoncé la disponibilité de Blazor 0.5.0 (puis Blazor 0.5.1 pour corriger les problèmes reportés par les utilisateurs).
Les nouvelles fonctionnalités de cette version sont :
- Blazor côté serveur
- Modèle de démarrage aligné avec ASP.NET Core
- Améliorations d'interopérabilité JavaScript
- Suppression de l'obligation de pré-enregistrer les méthodes JavaScript
- Invoquer la méthode d'instance .NET à partir de JavaScript
- Transférer les objets .NET en JavaScript par référence
- Ajouter Blazor à n'importe quel fichier HTML en utilisant un tag de script normal
- Rendre le HTML brut
- Nouvel extrait de paramètre de composant
- Prise en charge précoce du débogage dans le navigateur
Qu'est-ce que Blazor côté serveur?
Blazor est principalement un framework web côté client destiné à s'exécuter dans un navigateur où la logique du composant et les interactions DOM se produisent toutes dans le même processus.
Cependant, Blazor a été construit pour être assez flexible pour gérer les scénarios où l'application Blazor s'écarte du processus de rendu. Par exemple, vous pouvez exécuter Blazor dans un processus Web Worker afin qu'il s'exécute séparément du processus d'interface utilisateur. Les événements seraient transférés du processus de l'interface utilisateur vers le processus de Blazor, et Blazor pousserait les mises à jour de l'interface utilisateur vers le processus de l'interface utilisateur si nécessaire. Ce scénario n'est pas encore supporté, mais c'est quelque chose que Blazor a été conçu pour gérer.
Un autre cas d'utilisation potentiel pour exécuter Blazor dans un processus séparé est l'écriture d'applications de bureau avec Electron. La logique du composant Blazor peut s'exécuter dans un processus .NET Core normal, tandis que les mises à jour de l'interface utilisateur sont gérées dans le processus de rendu Electron.
À ce propos, Microsoft indique avoir un prototype fonctionnel dont vous pouvez vous servir pour essayer d’utiliser Blazor et Electron de cette manière.
Blazor 0.5.0 prend le modèle hors-processus de Blazor et le filtre sur une connexion réseau pour que vous puissiez exécuter Blazor sur le serveur. Avec Blazor 0.5.0, vous pouvez exécuter vos composants Blazor côté serveur sur .NET Core pendant que les mises à jour de l'interface utilisateur, la gestion des événements et les appels d'interopérabilité JavaScript sont gérés via une connexion SignalR.
L'exécution de Blazor côté serveur présente plusieurs avantages:
- Vous pouvez toujours écrire votre application entière avec .NET et C # en utilisant le modèle de composant Blazor.
- Votre application a toujours un aspect interactif riche et évite les actualisations de page inutiles.
- La taille de téléchargement de votre application est significativement plus petite et le temps de chargement initial de l'application est beaucoup plus rapide.
- La logique de votre composant Blazor peut tirer pleinement parti des capacités du serveur, notamment en utilisant des API compatibles .NET Core.
- Étant donné que vous utilisez .NET Core sur le serveur, les outils .NET existants, comme le débogage, fonctionnent.
- Fonctionne avec les clients légers (ex: les navigateurs qui ne supportent pas WebAssembly, les périphériques à ressources limitées, etc.).
Bien sûr, il y a aussi des inconvénients:
- Latence: chaque interaction utilisateur implique désormais un saut réseau.
- Pas de support hors ligne: si la connexion client est interrompue, l'application cesse de fonctionner.
- Évolutivité: le serveur doit gérer plusieurs connexions client et gérer l'état du client.
Modèle de démarrage
Tous les projets Blazor dans la version 0.5.0 utilisent désormais un nouveau modèle de démarrage similaire au modèle de démarrage dans ASP.NET Core. Chaque projet Blazor a une classe Startup avec une méthode ConfigureServices pour configurer les services pour votre application Blazor, et une méthode Configure pour configurer les composants racine de l'application.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IBlazorApplicationBuilder app) { app.AddComponent<App>("app"); } } |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) => BlazorWebAssemblyHost.CreateDefaultBuilder() .UseBlazorStartup<Startup>(); } |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Startup { public void ConfigureServices(IServiceCollection services) { ... services.AddServerSideBlazor<App.Startup>(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { ... app.UseServerSideBlazor<App.Startup>(); } } |
L'application Blazor et l'application ASP.NET Core partagent le même fournisseur de services. Les services ajoutés dans les méthodes ConfigureServices sont visibles par les deux applications. Les services étendus sont limités à la connexion client.
Ajouter Blazor à n'importe quel fichier HTML
Dans les éditions antérieures de Blazor, la version du projet a été modifiée pour remplacer la balise de script blazor-boot par une balise de script réelle qui gérait le téléchargement du démarrage. Cette configuration a rendu difficile l'utilisation de Blazor dans des fichiers HTML arbitraires.
Dans Blazor 0.5.0, ce mécanisme a été remplacé. Pour les projets côté client, ajoutez un tag de script qui fait référence au script _framework / blazor.webassembly.js (qui est généré dans le cadre de la construction). Pour les projets côté serveur, vous référencez _framework / blazor.server.js. Vous pouvez ajouter ce script à n'importe quel fichier HTML, y compris le contenu généré par le serveur.
Par exemple, au lieu d'utiliser le fichier index.html statique du projet client Blazor, vous pouvez ajouter une page Razor à votre projet hôte ASP.NET Core, puis y ajouter la balise de script Blazor ainsi que toute logique de rendu côté serveur.
Source : Microsoft
Voir aussi :
Windows 10 : Microsoft présente de nouvelles builds dopées au machine learning pour éviter les redémarrages inopportuns après des mises à jour
Slack rachète la plateforme HipChat à Atlassian et envisage de la fermer et récupérer ses utilisateurs, afin d'être plus solide face à Microsoft Teams
Un ingénieur de Mozilla affirme que YouTube est plus lent sur Firefox et Microsoft Edge que sur Google Chrome
Microsoft se lance dans la console de jeu orientée cloud, comme annoncé lors de l'édition 2018 de l'Electronic Entertainment Expo
Un développeur tiers publie LibreOffice pour Windows 10 sur le Microsoft Store, The Document Foundation s'en dédouane et la firme de Redmond l'éjecte