IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft présente les MAJ d'ASP.NET Core dans .NET, notamment le code C et C++ dans Blazor WebAssembly,
La sortie de Visual Studio 2022 annoncée pour novembre

Le , par Bruno

206PARTAGES

3  0 
L’équipe de développement de .NET, le Framework de développement de Microsoft pour les applications d'entreprises, a présenté le 12 octobre son habituelle série mensuelle d'informations sur .NET. « .NET 6 Release Candidate 2 (RC2) est maintenant disponible. .NET 6 RC2 est très proche de la version finale de .NET 6 que nous prévoyons de publier en novembre de cette année, à temps pour la conférence .NET 2021. Il s'agit également d'une version "go live", vous êtes donc invités à l'utiliser en production. La version RC2 de .NET 6 contient principalement des améliorations de la qualité et des corrections de bogues, bien qu'elle contienne également quelques nouvelles fonctionnalités », a déclaré Microsoft dans un billet de blog.

Microsoft .NET est le nom donné à un ensemble de produits et de technologies informatiques de l'entreprise Microsoft pour rendre des applications facilement portables sur Internet. Le mois dernier, Microsoft a annoncé la sortie de la première release candidate de .NET 6, disponible pour Linux, macOS et Windows. Cette version apportait des solutions aux problèmes fonctionnels et les régressions des fonctionnalités. .NET 6 RC1 avait été testé et pris en charge par la Preview 4 de Visual Studio 2022 qui permet de tirer parti des outils Visual Studio développés pour .NET 6, tels que le développement dans .NET MAUI, Hot Reload pour les applications C#, le nouveau Live Preview pour WebForms, et d'autres améliorations de performances dans l’expérience avec l’IDE.


La version RC2 de .NET 6 contient principalement des améliorations de la qualité et des corrections de bogues sur ASP.NET Core, bien qu'elle contienne également quelques nouvelles fonctionnalités. Une nouvelle fonctionnalité clé est arrivée dans le cadre Blazor pour les applications Web. Rappelons qu'ASP.NET Core est un Framework Web gratuit et open-source, développé par Microsoft. Il est plus performant qu'ASP.NET. C'est un Framework modulaire qui fonctionne à la fois avec le Framework .NET, sous Windows et .NET Core en multiplateforme.

Dépendances natives pour les applications Blazor WebAssembly

Les applications Blazor WebAssembly dans .NET 6 peuvent maintenant utiliser des dépendances natives qui ont été construites pour fonctionner avec WebAssembly. Le responsable principal du programme, Daniel Roth, a décrit les dépendances natives pour les applications Blazor WebAssembly (Wasm), ce qui signifie que « tout code natif portable peut être utilisé comme dépendance native. » Cela signifie à son tour que le code C, par exemple, peut être appelé à partir du code C# exécuté dans le navigateur. Le code C# et le code C seront compilés en Wasm, donc techniquement, cela peut sembler une petite étape, mais c'est joliment emballé pour fonctionner de la même manière que l'interopérabilité du code natif pour C# sur le serveur ou le bureau.

La nouvelle fonctionnalité dépend d'un composant de Visual Studio appelé .NET WebAssembly build tools, qui installe un tas de choses, y compris la chaîne d'outils du compilateur Emscripten pour C++ et C. La principale limitation est que le code doit être portable, bien que d'autres codes (tels que ceux qui utilisent des variables int 64-bit) peuvent s'exécuter lentement puisque JavaScript n'a pas de type int 64-bit natif. Roth a cité en exemple la bibliothèque graphique 2D SkiaSharp, qui englobe la bibliothèque graphique native Skia et offre une prise en charge préalable de Blazor WebAssembly.

Il est possible de lier statiquement les dépendances natives au moteur d'exécution .NET WebAssembly à l'aide des outils de construction .NET WebAssembly, les mêmes outils qui sont utilisés dans .NET 6 pour compiler à l'avance (AOT) l’application Blazor vers WebAssembly ou pour lier à nouveau le moteur d'exécution afin de supprimer les fonctionnalités inutilisées.

Pour installer les outils de compilation .NET WebAssembly, il faut sélectionner le composant facultatif dans le programme d'installation de Visual Studio ou exécutez dotnet workload install wasm-tools à partir d'une invite de commande élevée. Les outils de construction .NET WebAssembly sont basés sur Emscripten, une chaîne d'outils de compilation pour la plateforme Web.

L’ajout des éléments NativeFileReference dans un fichier de projet permet d’ajouter des dépendances natives aux applications Blazor WebAssembly. Lorsque le projet est construit, chaque NativeFileReference est transmise à Emscripten par les outils de construction de .NET WebAssembly afin qu'elle soit compilée et liée au runtime.

En général, tout code natif portable peut être utilisé comme dépendance native avec Blazor WebAssembly. Il est possible d’ajouter des dépendances natives au code C/C++ ou au code précédemment compilé à l'aide d'Emscripten : fichiers objets (.o), fichiers d'archive (.a), bitcode (.bc), ou modules WebAssembly autonomes (.wasm). Les dépendances préconstruites doivent généralement être construites en utilisant la même version d'Emscripten que celle utilisée pour construire le moteur d'exécution .NET WebAssembly (actuellement 2.0.23).

Utilisation du code natif d'une application Blazor WebAssembly

Pour ajouter une simple fonction C native à une application Blazor WebAssembly, il faut :
  1. Créez un nouveau projet Blazor WebAssembly ;
  2. Ajoutez un fichier Test.c au projet;
  3. Ajoutez une fonction C dans Test.c pour calculer des factorielles.


Code : Sélectionner tout
1
2
3
4
5
int fact(int n) 
{ 
    if (n == 0) return 1; 
    return n * fact(n - 1); 
}

Ajoutez une NativeFileReference pour Test.c dans le fichier de projet :

Code : Sélectionner tout
1
2
3
<ItemGroup> 
  <NativeFileReference Include="Test.c" /> 
</ItemGroup>

Dans Pages/Index.razor, ajoutez une DllImport [/I]pour la fonction fact dans la bibliothèque Test générée :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
@using System.Runtime.InteropServices 
 
... 
 
@code { 
    [DllImport("Test")] 
    static extern int fact(int n); 
}

Appelez la méthode fact depuis votre code .NET.

Code : Sélectionner tout
<p>@fact(3)</p>
Lorsque une application est construite avec les outils de construction .NET WebAssembly installés, le code C natif est compilé et lié dans dotnet.wasm. Cela peut prendre quelques minutes. Une fois la construction de l'application terminée, Microsoft recommande de l’exécuter pour voir la valeur factorielle rendue.

Utilisation de bibliothèques...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !