Annonce de .NET Core 3.1

Nous sommes ravis d'annoncer la sortie de .NET Core 3.1. Il s'agit vraiment d'un petit ensemble de correctifs et d'améliorations par rapport à .NET Core 3.0 , que nous avons publié il y a un peu plus de deux mois. La caractéristique la plus importante est que .NET Core 3.1 est une version prise en charge à long terme (LTS) et sera prise en charge pendant trois ans. Comme nous l'avons fait dans le passé, nous voulions prendre notre temps avant de publier la prochaine version de LTS. Les deux mois supplémentaires (après .NET Core 3.0) nous ont permis de sélectionner et de mettre en œuvre le bon ensemble d'améliorations par rapport à ce qui était déjà une base très stable. .NET Core 3.1 est maintenant prêt à être utilisé partout où votre imagination ou vos besoins commerciaux l'emmènent.

Vous pouvez télécharger .NET Core 3.1 , pour Windows, macOS et Linux:


ASP.NET Core et EF Core sont également publiés aujourd'hui.

Visual Studio 2019 16.4 a également été publié aujourd'hui et comprend .NET Core 3.1. Il s'agit d'une mise à jour requise pour utiliser .NET Core 3.1 avec Visual Studio. Pour les utilisateurs de Visual Studio 2019, nous recommandons simplement de mettre à jour Visual Studio vers 16.4 et au lieu de télécharger séparément .NET Core 3.1.

Visual Studio pour Mac prend également en charge et inclut .NET Core 3.1, dans le canal d'aperçu de Visual Studio pour Mac 8.4. Vous devrez activer le canal Aperçu pour utiliser .NET Core 3.1.

Notes de version:




Les changements dans .NET Core 3.1 étaient principalement axés sur Blazor et Windows Desktop , les deux nouveaux ajouts importants de .NET Core 3.0. Cela inclut la prise en charge de C ++ / CLI, qui a été une demande régulière pour les développeurs ciblant Windows.

Avant de jeter un coup d'œil aux nouveautés de .NET Core 3.1, examinons rapidement les principales améliorations de .NET Core 3.0 , qui constituent l'essentiel de ce qui est important à prendre en compte pour .NET Core 3.1.

Récapitulatif des améliorations de .NET Core 3.0


Les améliorations clés suivantes ont été apportées dans .NET Core 3.0. Les développeurs de grands sites nous ont déjà dit que cela fonctionnait très bien pour eux.

  • .NET Core 3.0 est déjà testé au combat en étant hébergé pendant des mois sur dot.net et sur Bing.com . De nombreuses autres équipes Microsoft déploieront bientôt de grandes charges de travail sur .NET Core 3.1 en production.
  • Les performances sont considérablement améliorées sur de nombreux composants et sont décrites en détail dans Améliorations des performances dans .NET Core 3.0 et Intrinsics matériel dans .NET Core .
  • C # 8 ajoute des flux asynchrones, une plage / un index, plus de modèles et des types de référence nullables . Nullable vous permet de cibler directement les failles de code qui conduisent à NullReferenceException . La couche la plus basse des bibliothèques de framework a été annotée, afin que vous sachiez quand vous attendre à null .
  • F # 4.7 se concentre sur la facilitation de quelque chose avec yield expressions de yield implicites et quelques relaxations de syntaxe. Il inclut également la prise en charge de LangVersion et est livré avec nameof et l'ouverture des classes statiques en aperçu. La bibliothèque F # Core cible désormais également .NET Standard 2.0. Vous pouvez en savoir plus sur Announcing F # 4.7 .
  • .NET Standard 2.1 augmente l'ensemble des types que vous pouvez utiliser dans le code qui peut être utilisé avec .NET Core et Xamarin. .NET Standard 2.1 inclut des types depuis .NET Core 2.1.
  • Les applications Windows Desktop sont désormais prises en charge avec .NET Core, pour Windows Forms et WPF (et open source ). Le concepteur WPF fait partie de Visual Studio 2019. Le concepteur Windows Forms est en aperçu et disponible en téléchargement.
  • Les applications .NET Core ont désormais des exécutables par défaut. Dans les versions précédentes, les applications devaient être lancées via la commande dotnet , comme dotnet myapp.dll . Les applications peuvent désormais être lancées avec un exécutable spécifique à l'application, comme ./myapp ou ./myapp , selon le système d'exploitation.
  • Des API JSON hautes performances ont été ajoutées pour les scénarios de lecture / écriture, de modèle d'objet et de sérialisation. Ces API ont été construites à partir de zéro sur SpanT et utilisent UTF8 sous les couvertures au lieu de UTF16 (comme une string ). Ces API minimisent les allocations, entraînant des performances plus rapides et beaucoup moins de travail pour le garbage collector. Voir Essayer les nouvelles API System.Text.Json .
  • Le garbage collector utilise moins de mémoire par défaut, souvent beaucoup moins. Cette amélioration est très bénéfique pour les scénarios où de nombreuses applications sont hébergées sur le même serveur. Le garbage collector a également été mis à jour pour mieux utiliser un grand nombre de cœurs, sur les machines avec> 64 cœurs. Voir Amélioration de la configuration du processeur pour le GC sur les machines avec> 64 processeurs .
  • .NET Core a été renforcé pour Docker afin de permettre aux applications .NET de fonctionner de manière prévisible et efficace dans des conteneurs. Le garbage collector et le pool de threads ont été mis à jour pour fonctionner beaucoup mieux lorsqu'un conteneur a été configuré pour une mémoire ou un processeur limité. Les images de docker .NET Core sont plus petites, en particulier l'image du SDK. Voir: Exécution avec le GC du serveur dans un scénario de petit conteneur, partie 0 , Exécution avec le GC du serveur dans un scénario de petit conteneur, partie 1 - Limite stricte pour le segment GC et utilisation de .NET et Docker ensemble - DockerCon 2019 Update .
  • Les puces Raspberry Pi et ARM sont désormais prises en charge pour permettre le développement IoT, y compris avec le débogueur distant Visual Studio. Vous pouvez déployer des applications qui écoutent les capteurs et imprimer des messages ou des images sur un écran, le tout en utilisant les nouvelles API GPIO. ASP.NET peut être utilisé pour exposer des données en tant qu'API ou en tant que site qui permet de configurer un appareil IoT.

Prise en charge de la plateforme


.NET Core 3.1 est pris en charge sur les systèmes d'exploitation suivants:

  • Alpine: 3.10+
  • Debian: 9+
  • Ubuntu: 16.04+
  • Fedora: 29+
  • RHEL: 6+
  • openSUSE: 15+
  • SUSE Enterprise Linux (SLES): 12 SP2 +
  • macOS: 10.13+
  • Client Windows: 7, 8.1, 10 (1607+)
  • Windows Server: 2012 R2 +

Remarque: les applications Windows Forms et WPF ne sont fonctionnelles et prises en charge que sur Windows.

Le support de puce suit:

  • x64 sur Windows, macOS et Linux
  • x86 sous Windows
  • ARM32 sur Windows et Linux
  • ARM64 sur Linux (noyau 4.14+)

Remarque: veuillez vous assurer que les déploiements .NET Core 3.1 ARM64 utilisent la version 4.14 ou ultérieure du noyau Linux. Par exemple, Ubuntu 18.04 satisfait à cette exigence, mais pas 16.04.

Suppression des contrôles Windows Forms


Les contrôles Windows Forms suivants ont été supprimés de .NET Core 3.1:

  • DataGrid
  • Barre d'outils
  • ContextMenu
  • Le menu
  • Menu principal
  • MenuItem

Ces contrôles ont été remplacés par des contrôles plus puissants dans le .NET Framework 2.0, en 2005. Ils n'étaient pas disponibles par défaut dans Visual Studio Designer Toolbox depuis de nombreuses années. En conséquence, nous avons décidé de supprimer ces contrôles et de nous concentrer uniquement sur les nouveaux.

Les remplacements suivants sont recommandés:
DataGridDataGridViewDataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTlesTleBles
Barre d'outilsToolstripToolBarAppearance
ToolBarButtonToolStripButtonToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign
ContextMenuContextMenuStrip
Le menuToolStripDropDown, ToolstripDropDownMenuMenuItemCollection
Menu principalMenuStrip
MenuItemToolstripMenuItem
Oui, c'est un changement de rupture malheureux. Vous verrez des ruptures de build si vous utilisez les contrôles que nous avons supprimés dans vos applications. En outre, si vous ouvrez des applications .NET Core 3.0 dans les dernières versions du concepteur Windows Forms .NET Core, vous verrez des erreurs si vous utilisez ces contrôles.

Nous vous recommandons de mettre à jour vos applications vers .NET Core 3.1 et de passer aux contrôles alternatifs. Le remplacement des contrôles est un processus simple, essentiellement «rechercher et remplacer».

Tout d'abord, nous aurions dû apporter ces modifications avant de publier .NET Core 3.0, et nous nous en excusons. Nous essayons d'éviter les changements tardifs, et encore plus pour les changements de rupture, et cela nous fait mal de faire celui-ci.

Au fur et à mesure que nous approfondissions le projet du concepteur Windows Forms, nous avons réalisé que ces contrôles n'étaient pas alignés sur la création d'applications modernes et n'auraient jamais dû faire partie du port .NET Core de Windows Forms. Nous avons également vu qu'ils auraient besoin de plus de temps de notre part pour soutenir que cela n'avait de sens.

Notre objectif est de continuer à améliorer les formulaires Windows pour un DPI élevé, l'accessibilité et la fiabilité, et ce changement tardif était nécessaire pour nous permettre de nous concentrer sur la livraison.

C ++ / CLI


Nous avons ajouté la prise en charge de la création de composants C ++ / CLI (AKA "C ++ gérés") qui peuvent être utilisés avec .NET Core 3.0+, dans Visual Studio 2019 16.4. Vous devez installer la charge de travail "Développement de bureau avec C ++" et le composant "Prise en charge C ++ / CLI" pour utiliser C ++ / CLI.

Ce composant ajoute quelques modèles que vous pouvez utiliser:

  • Bibliothèque de classes CLR (.NET Core)
  • Projet vide CLR (.NET Core)

Si vous ne les trouvez pas, recherchez-les simplement dans la boîte de dialogue Nouveau projet.

C ++ / CLI n'est activé que sur Windows. Vous ne pouvez pas utiliser de composants C ++ / CLI ciblés pour .NET Framework avec .NET Core ou vice versa.

Clôture


Nous vous recommandons de passer à .NET Core 3.1 dès que possible. Il s'agit d'une excellente version (largement due à la version 3.0) qui apporte des améliorations à de nombreux aspects de .NET Core. Il s'agit également d'une version de support à long terme (LTS) et sera prise en charge pendant trois ans.

Mise à jour du cycle de vie:

  • .NET Core 3.0 arrivera en fin de vie dans trois mois à compter d'aujourd'hui, le 3 mars 2020.
  • .NET Core 2.2 prendra fin le 23 décembre.
  • .NET Core 2.1 sera pris en charge jusqu'en août 2021 (il s'agit également d'une version LTS).

Les publications .NET Core suivantes sont recommandées pour en savoir plus sur ce que vous obtenez avec .NET Core 3.1 et d'autres projets sur lesquels nous travaillons.

Fondamentaux


Bureau


ASP.NET


Général

Source: https://habr.com/ru/post/fr478896/


All Articles