Microsoft publie la première préversion publique de Blazor
Son framework web .NET expérimental qui s'exécute au sein du navigateur

Le , par Michael Guilloux, Chroniqueur Actualités
Début février, Microsoft a annoncé un nouveau projet expérimental baptisé Blazor (contraction de Browser et Razor), dont le but est d'offrir aux programmeurs un framework web .NET basé sur C#, Razor et HTML et qui s'exécute directement au sein du navigateur via WebAssembly. D'après Microsoft, Blazor permet le développement Web full stack avec la stabilité et la productivité de .NET. Avec ce projet, Microsoft veut aussi simplifier considérablement la tâche de création d'applications web monopages (single-page application) performantes qui s'exécutent dans n'importe quel navigateur. Pour cela, le projet devrait donc offrir des fonctionnalités dignes d'un framework moderne, y compris :

  • 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.

Aujourd'hui, Microsoft fait un pas vers l'avant en publiant la première préversion publique de Blazor : la version 0.1.0. Dans cette version, la firme dit avoir jeté les bases du modèle de composant de Blazor et ajouté d'autres fonctionnalités de base, telles que le routage, l'injection de dépendances et l'interopérabilité avec JavaScript. Microsoft a également travaillé sur l'expérience utilisateur et les outils afin que vous obteniez un excellent IntelliSense et des complétions dans l'éditeur Razor.

Les autres fonctionnalités qui ont été démontrées précédemment sous forme de prototypes, comme le rechargement à chaud, le débogage et le prérendu, n'ont pas encore été implémentées, mais sont prévues pour de futures mises à jour. Même ainsi, Microsoft estime qu'il y a beaucoup de choses dans cette version pour que les développeurs commencent à la tester pour faire des retours sur la direction actuelle.

Pour installer Blazor, vous devez d'abord installer le SDK .NET Core 2.1 Preview 1, puis la dernière préversion de Visual Studio 2017 (15.7) avec la charge de travail de développement Web. Après cela, il ne restera plus qu'à installer l'extension ASP.NET Core Blazor Language Services à partir de Visual Studio Marketplace.

Pour créer votre premier projet Blazor à partir de Visual Studio, sélectionnez Fichier -> Nouveau projet -> Web -> Application Web ASP.NET Core. Vous devez ensuite vous assurez que .NET Core et ASP.NET Core 2.0 soient sélectionnés dans les listes déroulantes en haut de la boite de dialogue qui s'affiche et choisir le modèle de projet Blazor.


Si vous n'utilisez pas Visual Studio, vous pouvez installer les modèles Blazor à partir de la ligne de commande :

Code : Sélectionner tout
1
2
3
4
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
dotnet new blazor -o BlazorApp1
cd BlazorApp1
dotnet run
Dans son billet relatif à l'annonce de Blazor 0.1.0, Microsoft fournit des instructions pour commencer à créer des applications Web avec Blazor. Vous trouverez aussi sur GitHub plus de détails sur les fonctionnalités dans la première préversion du framework web .NET expérimental.

Sources : Blog Microsoft, GitHub

Et vous ?

Qu'en pensez-vous ?
Comptez-vous tester Blazor dès maintenant ? Si oui, n’oubliez pas de partager votre expérience


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Dhafer1 Dhafer1 - Membre habitué https://www.developpez.com
le 23/03/2018 à 7:58
Existe t'il des projets similaires sous python ?
Avatar de redcurve redcurve - Membre averti https://www.developpez.com
le 23/03/2018 à 10:44
Citation Envoyé par Dhafer1 Voir le message
Existe t'il des projets similaires sous python ?
Je ne sais pas mais une partie des dev de .net font partie de la core team python donc ça ne devrait pas tarder.
Avatar de Aspartame Aspartame - Membre actif https://www.developpez.com
le 23/03/2018 à 13:07
j'aurai préféré un autre nom ...

  • SilverNight
  • SilverFight
  • SilverRight
Avatar de TheYoungGeek43 TheYoungGeek43 - Membre du Club https://www.developpez.com
le 23/03/2018 à 14:47
Euh... Je suis le seul a avoir fait la mis à jour de VS mais de voir nul par Blazor
Avatar de mrqs2crbs mrqs2crbs - Membre averti https://www.developpez.com
le 27/03/2018 à 16:05
Citation Envoyé par TheYoungGeek43 Voir le message
Euh... Je suis le seul a avoir fait la mis à jour de VS mais de voir nul par Blazor
tu utilises bien visual studio Preview 2017 (15.7) ?
Avatar de wadison wadison - Membre à l'essai https://www.developpez.com
le 30/03/2018 à 11:32
C'est une bonne chose, mais il faudra être très convainquant pour me bouger d'angular
Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 18/04/2018 à 15:44
Microsoft publie la deuxième préversion de Blazor
son framework web .NET expérimental qui s'exécute au sein du navigateur

Près d'un mois après la sortie de Blazor 0.1.0, Microsoft annonce la deuxième préversion publique de son framework Web expérimental. Le projet a été dévoilé début février avec pour objectif d'offrir aux programmeurs un framework web .NET basé sur C#, Razor et HTML et qui s'exécute directement au sein du navigateur via WebAssembly. D'après Microsoft, Blazor devrait permettre le développement Web full stack avec la stabilité et la productivité de .NET, mais aussi simplifier la création d'applications web monopages (single-page application) performantes qui s'exécutent dans n'importe quel navigateur. Les fonctionnalités prévues comprennent :

  • 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.

La version 0.1.0 publiée le mois dernier a permis de jeter les fondements du framework et ajouter des fonctionnalités de base, notamment le routage, l'injection de dépendances et l'interopérabilité avec JavaScript. Dans cette nouvelle préversion, Microsoft poursuit son travail avec des améliorations et des fonctionnalités supplémentaires.

Cette préversion vous permet par exemple de construire vos propres bibliothèques de composants réutilisables. Dans un billet de blog, Microsoft décrit en six étapes la procédure pour le faire. On notera également une syntaxe améliorée pour la gestion des événements et la liaison de données.

Avec une fonctionnalité « Build on save » dans Visual Studio, Microsoft permet aussi le workflow de développement Web standard avec Blazor. Rappelons en effet que le workflow de développement typique de nombreux développeurs Web consiste à éditer le code, à l'enregistrer et à actualiser le navigateur. Ce flux de travail est rendu possible par la nature interprétée de JavaScript, HTML et CSS. Blazor est toutefois un peu différent, car il repose sur la compilation de code C# et Razor en assemblies .NET. Pour permettre le workflow de développement Web standard avec Blazor, Visual Studio va désormais surveiller les modifications de fichiers dans votre projet Blazor et va régénérer et redémarrer votre application alors que les éléments seront modifiés. Vous pouvez ensuite actualiser le navigateur pour voir les modifications sans avoir à régénérer manuellement l'application.

Parmi les fonctionnalités mises en avant dans cette préversion, on peut citer encore les attributs conditionnels ainsi que des améliorations de HttpClient. Vous trouverez dans les notes de version sur GitHub une liste complète des changements dans cette version.

Pour installer Blazor 0.2.0, vous devez d'abord installer le SDK .NET Core 2.1 Preview 2, puis la dernière préversion de Visual Studio 2017 (15.7) avec la charge de travail de développement Web. Après cela, il ne restera plus qu'à installer l'extension ASP.NET Core Blazor Language Services à partir de Visual Studio Marketplace. Microsoft fournit également des instructions à suivre pour passer de la version 0.1.0 à la version 0.2.0.

Rappelons aussi que pour créer votre premier projet Blazor à partir de Visual Studio, vous devez aller dans Fichier -> Nouveau projet -> Web -> Application Web ASP.NET Core. Vous devez ensuite vous assurez que .NET Core et ASP.NET Core 2.0 soient sélectionnés dans les listes déroulantes en haut de la boite de dialogue qui s'affiche et choisir le modèle de projet Blazor.


Sources : Blog Microsoft, GitHub

Et vous ?

Qu'en pensez-vous ?
L'avez-vous déjà testé ? Si oui, partagez votre expérience !

Voir aussi :

Microsoft publie la première préversion publique de Blazor, son framework web .NET expérimental qui s'exécute au sein du navigateur
Microsoft lance un nouveau projet expérimental baptisé Blazor, qui simplifie la création d'applications web monopages avec .NET
Avatar de Madmac Madmac - Membre éclairé https://www.developpez.com
le 20/04/2018 à 16:25
L'idée est bonne. Mais je déteste le navigateur et la compagnie qui a l'habitude de saigner tous le mondes (développeur inclus).
Avatar de Stéphane le calme Stéphane le calme - Chroniqueur Actualités https://www.developpez.com
le 28/07/2018 à 23:34
Microsoft annonce la disponibilité de Blazor 0.5.1,
son framework web .NET expérimental qui s'exécute au sein du navigateur

Début février, Microsoft a annoncé un nouveau projet expérimental baptisé Blazor (contraction de Browser et Razor), dont le but est d'offrir aux développeurs un framework web .NET basé sur C#, Razor et HTML et qui s'exécute directement au sein du navigateur via WebAssembly. D'après Microsoft, Blazor permet le développement Web full stack avec la stabilité et la productivité de .NET. Avec ce projet, Microsoft veut aussi simplifier considérablement la tâche de création d'applications web monopages (single-page application) performantes qui s'exécutent dans n'importe quel navigateur. Pour cela, le projet devrait donc offrir des fonctionnalités dignes d'un framework moderne, y compris :
  • 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");
    }
}
Le point d'entrée de l'application dans Program.cs crée un hôte Blazor configuré pour utiliser la classe Startup.

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>();
}
Dans les applications Blazor côté serveur, le point d'entrée provient de l'application hôte ASP.NET Core, qui référence la classe Blazor Startup pour ajouter les services Blazor côté serveur et pour ajouter l'application Blazor au pipeline de gestion des demandes:

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>();
    }
}
Alors que le projet Blazor côté serveur peut également avoir une classe Program, il n'est pas utilisé lors de l'exécution sur le serveur. Cependant, il serait utilisé si vous passiez à l'exécution côté client (WebAssembly) en changeant simplement la balise <script> dans index.html pour charger blazor.webassembly.js au lieu de blazor.server.js.

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
Avatar de jpouly jpouly - Membre actif https://www.developpez.com
le 30/07/2018 à 11:16
Acte 1 : Sun crée Java. Avec les applets, permettant de faire tourner des applications java sur un navigateur.

Acte 2 : Microsoft se dit : He, c'est pas mal tout ça. Vais faire ma propre JVM pour mon propre navigateur.

Acte 3 : Sun grogne. Microsoft crée .NET

Acte 4 : Adobe Flash a repris le flambeau. Microsoft se dit : He c'est pas mal tout ça. Un peu échaudé quelques années auparavant, il crée Silverlight, pour pas se faire taper sur les doigts.

Acte 5 : Flash est "presque" mort, Silverlight est mort né, snifff.

Acte 6 : Microsoft revient à sa première idée : Faire des applets, mais en .NET, cette fois-ci.

Moral de l'histoire : le recyclage n'est pas qu'une affaire d'écologistes
Contacter le responsable de la rubrique Accueil