Dans son billet parlant de .NET Core 3.0 Preview 9, Microsoft avait déclaré que la Preview 9 serait la dernière version avant la disponibilité générale de .NET Core 3.0. « Nous, ou du moins l'auteur infatigable de ces billets de blogs, nous sommes trompés », a noté Richard de Microsoft (qui est celui qui rédige les billets sur les Preview de .NET Core 3.0).
Cette fois-ci, il s'est contenté de dire que la disponibilité générale approche à grands pas puisqu'elle est prévue pour le 23 septembre à l'occasion de la .NET Conf, un événement gratuit de trois jours autour des plateformes .NET (qui va donc s'achever le 25 septembre).
Voici son explication :
« Pour des raisons techniques et historiques, l'ensemble d'outils .NET (compilateurs, client NuGet, MSBuild,…) est dupliqué entre Visual Studio et le Kit de développement logiciel (SDK) .NET. Des modifications importantes ont été apportées à la boîte à outils dans Visual Studio 2019 16.3 Preview 4, également publié aujourd'hui. Il est essentiel que la version du Kit de développement .NET Core SDK faisant partie de toute version de Visual Studio inclue le même jeu d'outils afin de fournir une expérience compatible dans tous les scénarios.
« Nous aurions dû nous rendre compte qu'il était très probable que nous devions publier des modifications pour prendre en charge une autre préversion de Visual Studio. Faire des corrections dans les outils .NET comme ceci est une procédure d’exploitation standard. Nous aurions pu publier un nouveau SDK .NET Core et le livrer uniquement via Visual Studio. Cependant, nous avons déjà déboussolé des personnes dans un passé (maintenant lointain) avec cette approche. Par conséquent, lorsque nous publions un nouveau kit de développement .NET Core SDK, nous le rendons disponible pour tous, partout ».
Prise en charge de Visual Studio
.NET Core 3.0 est pris en charge avec Visual Studio 2019 16.3 Preview 4 et Visual Studio pour Mac 8.3, également disponibles aujourd'hui. Effectuez une mise à niveau pour bénéficier de la meilleure expérience (et prise en charge) avec .NET Core 3.0 Preview RC1.
Le code C# Extension pour Visual Studio est toujours mis à jour pour prendre en charge les nouvelles versions de .NET Core. Assurez-vous d'avoir la dernière version de l'extension C# installée.
.NET Core 3.0
Les évolutions ont été abordées au fil des Preview. Par exemple, .NET Core 3.0 Preview 4 inclut un contrôle de graphique pour Windows Forms, une prise en charge HTTP / 2, des mises à jour du GC permettant d’utiliser moins de mémoire, une prise en charge des limites de CPU avec Docker, l’ajout de PowerShell dans les images de conteneur Docker du SDK .NET Core, et bien d’autres améliorations encore.
Contrôle WinForms Chart
Richard de Microsoft avait avancé que :
« Nous avons entendu dire que certains développeurs n'étaient pas en mesure de migrer leurs applications .NET Framework existantes vers .NET Core, car ils dépendaient du contrôle Chart. Nous avons résolu ce problème pour vous!
« Le package System.Windows.Forms.DataVisualization (qui inclut le contrôle de graphique) est désormais disponible sur NuGet, pour .NET Core. Vous pouvez maintenant inclure ce contrôle dans vos applications .NET Core WinForms! »
Microsoft a porté la bibliothèque System.Windows.Forms.DataVisualization sur .NET Core au cours des derniers sprints. La source du contrôle de graphique est disponible à l'adresse dotnet / winforms-datavisualization, sur GitHub. Le contrôle a été migré pour faciliter le portage vers .NET Core 3, mais Microsoft précise qu'il ne s'agit pas là d'un composant sur lequel l'entreprise a l'intention d'innover. Pour des scénarios de visualisation des données plus avancés, l'éditeur recommande de consulter Power BI.
Mise à jour de la compilation par niveaux (TC - Tiered Compilation)
La compilation hiérarchisée (TC) est une fonctionnalité d'exécution capable de contrôler la vitesse de compilation et la qualité du JIT afin d'obtenir différents résultats en termes de performances. Elle est activée par défaut dans les versions .NET Core 3.0.
L’avantage fondamental de TC est de permettre des méthodes de (ré) jitting avec un code lent mais plus rapide à produire ou de meilleure qualité mais plus lent à produire afin d’améliorer les performances d’une application au cours des différentes étapes d’exécution, du démarrage à son état stationnaire. Cela contraste avec l'approche non-TC, dans laquelle chaque méthode est compilée d'une seule manière (comme pour le niveau de qualité supérieure), qui privilégie l'état stationnaire au démarrage.
« Nous réfléchissons à ce que la configuration par défaut de TC devrait être pour la version 3.0 finale. Nous avons étudié l’impact (positif et / ou négatif) sur les performances de nombreux scénarios d’application, avec pour objectif de sélectionner un paramètre par défaut qui convient à tous les scénarios et de fournir des commutateurs de configuration permettant aux développeurs de sélectionner leurs paramètres de configuration.
« TC reste activé dans la préversion 4, mais nous avons modifié la fonctionnalité activée par défaut. Nous recherchons des commentaires et des données supplémentaires pour nous aider à décider si cette nouvelle configuration est la meilleure ou si nous devons apporter d'autres modifications. Notre objectif est de sélectionner la meilleure valeur globale par défaut, puis de fournir un ou plusieurs commutateurs de configuration afin d'activer d'autres comportements de participation ».
Prise en charge HTTP/2
Microsoft a apporté un support pour HTTP/2 dans HttpClient. Le nouveau protocole est obligatoire pour certaines API, telles que gRPC et le service de notification Apple Push. L'éditeur prévoit que davantage de services nécessiteront HTTP/2 à l'avenir.
ASP.NET prend également en charge HTTP/2, mais il s'agit d'une implémentation indépendante optimisée pour la mise à l'échelle.
Dans la préversion 4, HTTP/2 n'est pas activé par défaut, mais peut être activé avec l'une des méthodes suivantes:
- Définissez AppContext.SetSwitch ("System.Net.Http.SocketsHttpHandler.Http2Support", true); réglage du contexte de l'application
- Définissez la variable d'environnement DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT sur true
Ces configurations (l'une ou l'autre) doivent être définies avant d'utiliser HttpClient si vous avez l'intention d'utiliser HTTP/2.
Remarque: la version de protocole HTTP préférée sera négociée via TLS/ALPN et HTTP/2 ne sera utilisé que si le serveur choisit de l'utiliser.
En somme, voici quelques-unes des principales fonctionnalités de .NET Core 3 :
- Windows Desktop, WPF et support de winforms dans .NET Core
- Prise en charge de la dernière version de C# (8.0)
- Déploiement MSIX et exécutable EXE autonome
- Prise en charge de .Net Standard 2.1
- Winforms avec haute DPI
- Prise en charge JSON intégrée rapide
- Support HTTP/2
- Prise en charge des chiffrements cryptographiques AES-GCM et AES-CCM
- Compilation à plusieurs niveaux
- Amélioration des performances
Télécharger .NET Core 3.0 RC1 (sur Windows, macOS et Linux)
Source : Microsoft
Voir aussi :
Bing.com tourne désormais sur .NET Core 2.1, un choix technique qui lui a permis de gagner en performance, mais aussi en agilité
Microsoft annonce la diffusion de mises à jour cumulatives pour .NET Framework à compter de la mise à jour Windows 10 octobre 2018
PowerShell Core 6.1 est disponible : support de .NET Core 2.1, compatibilité avec les modules Windows, cmdlets et rendu Markdown et plus
Visual Studio 2019 version 16.2 Preview 2 est disponible en téléchargement, et apporte des améliorations à la productivité .NET
Avec .NET 5, Microsoft voudrait produire un environnement d'exécution .NET unique et une infrastructure utilisable partout