BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Blazor apporte de nouveau .NET au navigateur

Blazor apporte de nouveau .NET au navigateur

L’expérience Blazor de Steve Sanderson essaye de ramener .NET dans le navigateur en utilisant WebAssembly. Il ne s'agit pas d'un framework complet pour la production comme Flash ou Silverlight, mais plutôt d'un essai pour voir ce qui est possible.

WebAssembly se décrit comme une norme pour "un environnement d'exécution sécurisé en mémoire, qui peut même être implémenté dans des machines virtuelles JavaScript existantes". Bien qu'il fonctionnera mieux avec les navigateurs qui le supportent de manière native, WebAssembly peut être interprété par les navigateurs les plus anciens en utilisant un convertisseur avec asm.js.

Actuellement WebAssembly est conçu principalement pour prendre en charge les applications C et C ++. Il sert de backend de compilation pour clang/LLVM. Pour passer de C à C#, Blazor a utilisé un autre projet de recherche DotNetAnywhere de Chris Bacon. DotNetAnywhere était un interpréteur basé sur C pour la Common Intermediate Language de .NET (aka IL, CIL, MSIL). Le projet DotNetAnywhere a pris fin il y a environ six ans.

Blazor effectue les modifications suivantes sur DotNetAnywhere :

  • Pour supporter la construction avec Emscripten.
  • Pour prendre en charge les appels p/invoke de .NET vers JavaScript.
  • Pour ajouter d'autres primitives d'interopérabilité, par exemple, GCHandle.
  • Pour recevoir les appels entrants de JavaScript vers .NET.
  • Pour corriger certains bogues.
  • Pour prendre en charge le chargement des assemblages .NET Core-style.

Les applications Blazor sont construites à l'aide de modèles Razor qui sont exécutés dans le navigateur plutôt que sur le serveur. Selon la documentation, une simple application "hello world" nécessite le téléchargement de 300 Ko. Ceci comprend "tout : le léger runtime de .NET, les bibliothèques de base, le code de l’application et les bibliothèques wrapper nécessaires pour démarrer et interroger avec le code WebAssembly".

Aucun effort n'a été fait pour éliminer le code qui n'est pas réellement appelé, il est donc possible de réduire cette taille davantage.

Pour voir cela en action, regardez la vidéo de la Conférence NDC intitulée : Les Web Apps ne peuvent pas vraiment faire "ça", n'est-ce pas ? de Steve Sanderson.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT