Developpez.com

Le Club des Développeurs et IT Pro

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 2018-03-22 23:20:25, 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 :
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
  Discussion forum
20 commentaires
  • Aspartame
    Membre confirmé
    j'aurai préféré un autre nom ...

    • SilverNight
    • SilverFight
    • SilverRight
  • redcurve
    Membre extrêmement actif
    Envoyé par jpouly
    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


    Tu racontes nawak, il s'agit juste de webassembly le code C# n'est jamais exécuté.
  • jolt-counter
    Membre régulier
    Envoyé par jpouly
    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
    Il y a une différence majeur dans le cas de Blazor.
    Comme cité plus haut Blazor compile vers le langage WebAssembly ou JavaScript avec asm.js si le navigateur web ne supporte pas WebAssembly.
    Contrairement à Flash, aux Applets Java et à Silverlight, il n'y a aucun plugin à installer sur son navigateur web.

    C'est justement l'un des but de WebAssembly, offrir de manière natif dans le navigateur web un moyen d’exécuter un langage ouvert, standardisé et de bas niveau vers lequel un langage de haut niveau peut compiler, tout comme les langages HTML, CSS et JavaScript offrent la possibilité de créer des sites web de manières standardisées sur la majorité des navigateurs web.
    Du coup le développeur pourra utiliser un langage de son choix (JavaScript, C#, Python, C++, Rust, ...) au lieu d'uniquement le JavaScript pour dynamiser son site web côté client.

    On évite les écueils de Flash, Applet Java et Silverlight car ici il n'y a pas de plugin à installer ou à mettre à jour avec les risques de sécurité liés à leur utilisation.

    Je trouve Blazor très intéressant surtout si on veut faire un site web 100% C# côté client et serveur avec Blazor + Asp.net Core.

    Je rajoute que contrairement à Silverlight, Blazor semble open source, multiplateforme, gratuit et plus léger et plus simple à déployer. (dotnet core + la ligne de commande suffise).
  • François DORIN
    Expert éminent sénior
    Envoyé par jpouly
    Pour le cotés open source, quand je vois la liste des contributeurs (Microsoft, Apple, Google, Mozilla et W3C), je reste septique.
    Enlève Apple, et tu as pourtant une liste d'entreprises faisant parti des plus grands contributeurs à l'open-source en général. Bon, sauf le W3C, qui est plutôt orienté standardisation qu'open-source à proprement parler...
  • Dhafer1
    Membre habitué
    Existe t'il des projets similaires sous python ?
  • redcurve
    Membre extrêmement actif
    Envoyé par Dhafer1
    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.
  • TheYoungGeek43
    Membre du Club
    Euh... Je suis le seul a avoir fait la mis à jour de VS mais de voir nul par Blazor
  • mrqs2crbs
    Membre averti
    Envoyé par TheYoungGeek43
    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) ?
  • wadison
    Membre à l'essai
    C'est une bonne chose, mais il faudra être très convainquant pour me bouger d'angular
  • Madmac
    Membre extrêmement actif
    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).