Présentation de .NET 5 Preview 1

À la fin de l'année dernière, nous avons publié .NET Core 3.0 et 3.1. Dans ces versions, Windows Forms (WinForms) et WPF, les modèles d'application de bureau ASP.NET Blazor pour la création d'applications à page unique et gRPC pour la messagerie multiplateforme basée sur les contrats ont été ajoutés. Nous avons également ajouté des modèles pour créer des services, une génération cool de code client pour communiquer avec gRPC, des services API REST et bien plus encore. Nous sommes heureux que .NET Core 3 soit devenu la version la plus rapidement acceptée de .NET, et au cours de l'année dernière, nous avons eu un autre million d'utilisateurs.

Nous avons également travaillé sur ces versions pour terminer la migration des modèles d'application à partir du .NET Framework. Dans .NET Core 3, nous avons migré tous les modèles d'application les plus utilisés et introduit de nouvelles infrastructures multiplateformes au lieu de celles qui n'étaient pas portées.

En prévision de la prochaine version majeure de .NET 5, nous continuerons à intégrer .NET dans une plate-forme unique en incluant notre modèle d'application mobile .NET (Xamarin) dans .NET 5. .NET 5 inclura ASP.NET Core, Entity Framework Core, WinForms, WPF, Xamarin et ML.NET. Pour la première fois, l'ensemble de la plateforme utilisera une BCL (bibliothèque de classes de base) unifiée pour tous les modèles d'application. La présence de la version 5, qui est supérieure à celle de .NET Core et .NET Framework, indique également clairement que .NET 5 est l'avenir de .NET, une plate-forme unifiée unifiée pour créer des applications de tout type.

Nous l'avons dit à plusieurs reprises, mais nous le répéterons à nouveau; .NET Core, puis .NET 5, est .NET, avec lequel vous devez créer toutes vos nouvelles applications. Le .NET Framework sera pris en charge tant que Windows lui-même est pris en charge. Nous continuerons d'assurer la sécurité et de corriger les bogues, ainsi que de mettre à jour le réseau et les API de chiffrement. Il restera sécurisé et pris en charge pour exécuter vos anciennes applications sur le .NET Framework.



Installer .NET 5.0 Preview 1


Aujourd'hui, nous publions le premier Preview .NET 5, dont la sortie complète est prévue pour la fin de cette année en novembre.


Lisez les mises à jour d'ASP.NET Core dans .NET 5 Preview 1 pour en savoir plus sur la version actuelle d'ASP.NET Core.

L'aperçu 1 inclut la prise en charge de Windows ARM64 pour la première fois. La version actuelle inclut également le runtime .NET Core. Nous nous attendons à ce que le SDK (noyau ASP.NET, mais pas WPF ou Windows Forms) soit ajouté dans l'aperçu 2. Les aperçus ultérieurs incluront WPF et Windows Forms. La prise en charge de Windows ARM64 sera également portée sur .NET Core 3.1. Nous partagerons plus de détails à ce sujet dans un article sur l'aperçu 2.

Mise à jour des projets existants


Vous pouvez mettre à niveau des projets existants en mettant à jour la plate-forme cible comme suit:

<TargetFramework>netcoreapp5.0</TargetFramework>

Principales cibles .NET 5


  • Expérience du SDK .NET unifié:
    • BCL ( ) .NET 5. Xamarin Mono BCL, .NET Core BCL, .
    • (Xamarin) .NET 5. , .NET SDK mobile. , «dotnet new XamarinForms» .
  • , : « », , , Window Desktop, Microsoft Duo (Android) iOS, , .
  • Applications Web prenant en charge plusieurs plates-formes: un projet Blazor qui prend en charge une application pouvant s'exécuter dans les navigateurs, sur les appareils mobiles et en tant qu'application de bureau native (par exemple, Windows 10x).
  • Applications cloud natives: microservices hautes performances avec un seul fichier (.exe) <50 Mo et support pour la création de plusieurs projets (API, interfaces web, conteneurs) à la fois localement et dans le cloud.
  • Améliorations continues, telles que: accélération des algorithmes dans BCL, améliorations de la prise en charge des conteneurs lors de l'exécution, prise en charge de HTTP3.

L'aperçu 1 ne contient pas encore les résultats de tous ces objectifs, mais nous continuerons d'annoncer plus de fonctionnalités dans les aperçus futurs.

Améliorations de l'aperçu 1


Les améliorations suivantes dans l'aperçu 1:

Améliorations des performances des expressions régulières


Nous avons investi massivement dans le moteur Regex. Dans de nombreuses expressions que nous avons testées, ces améliorations conduisent généralement à une productivité 3 à 6 fois plus élevée et, dans certains cas, beaucoup plus. Bientôt, nous aurons un article de blog dans lequel ces améliorations seront décrites plus en détail.

Amélioration de la qualité du code dans RyuJIT


Chaque version comprend un ensemble d'améliorations des performances pour le code généré par JIT. Nous appelons ce type d'amélioration «CQ» ou qualité de code. Dans la plupart des cas, ces améliorations s'appliquent également au code créé pour les images prêtes à fonctionner.


event pipe


Nous avons ajouté des informations sur le chargement de l'assemblage dans le tuyau d'événement. Cette amélioration marque le début de la disponibilité de fonctionnalités de diagnostic similaires qui font partie du .NET Framework avec  Fusion Log Viewer . Vous pouvez maintenant utiliser  dotnet-trace  pour collecter ces informations à l'aide de la commande suivante:

dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [process ID]

Le flux de travail est décrit dans la section Chargement de l'ensemble de trace avec le canal d'événement . Vous pouvez voir les informations de chargement d'assemblage pour une application de test simple.



API de profilage d'événements (canal d'événement)


Event Pipe est un nouveau sous-système et une nouvelle API que nous avons ajoutés à .NET Core 2.2 pour permettre d'exécuter des diagnostics de performances et d'autres dans n'importe quel système d'exploitation. Dans .NET 5.0, le canal d'événements a été développé afin que les profileurs puissent enregistrer les événements du canal d'événements. Ce scénario est important pour les outils de profileur qui utilisaient auparavant ETW pour surveiller le comportement et les performances des applications.

Consolidation du référentiel GitHub


Dans le cadre de la version .NET 5, nous avons  réduit le nombre de référentiels sur GitHub qui ont été utilisés pour créer et empaqueter .NET. Les limites du référentiel ont un impact significatif sur de nombreux aspects d'un projet, notamment l'assemblage et la gestion des problèmes. Avec .NET Core 1.0, nous avions plus de 100 référentiels en ASP.NET, EF et .NET Core. Maintenant, tout a changé. Nous avons également migré presque tous les référentiels vers dotnet org.

Découvrez les nouveaux référentiels consolidés:


All Articles