« La caractéristique la plus importante est que .NET Core 3.1 est une version prise en charge à long terme (LTS) qui sera prise en charge pendant trois ans. Comme par le passé, nous voulions prendre notre temps avant de publier la prochaine version 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 à une base déjà très stable. .NET Core 3.1 est maintenant prêt à être utilisé partout où votre imagination ou vos besoins professionnels le nécessitent ».
Les modifications apportées à .NET Core 3.1 concernaient principalement Blazor et Windows Desktop, les deux nouveaux et importants ajouts à .NET Core 3.0. Cela inclut la prise en charge de C ++ / CLI, une demande habituelle des développeurs ciblant Windows.
.NET Core 3.1 est pris en charge sur les systèmes d'exploitation suivants:
- Alpine à partir de la version 3.9 ;
- Debian à partir de la version 9 ;
- openSUSE à partir de la version 42.3 ;
- Fedora à partir de la version 26 ;
- Ubuntu à partir de la version 16.04 ;
- RHEL à partir de la version 6 ;
- SLES à partir de la version 12 ;
- macOS à partir de la version 10.13 ;
- Client Windows : 7, 8.1, 10 (à partir de la build 1607) ;
- Windows Server à partir du SP1 2012 R2.
L'éditeur précise que les applications Windows Forms et WPF ne sont fonctionnelles et prises en charge que sous Windows.
Côté support de puce :
- l'architecture x64 est prise en charge sous Windows, macOS et Linux ;
- l'architecture x86 est prise en charge uniquement sous Windows ;
- l'architecture ARM32 est prise en charge sous Windows et Linux ;
- l'architecture ARM64 est prise en charge sous Linux (à partir du kernel 4.14).
Les contrôles Windows Forms suivants ont été supprimés de .NET Core 3.1:
- DataGrid ;
- ToolBar ;
- ContextMenu ;
- Menu ;
- MainMenu ;
- MenuItem.
Ces contrôles ont été remplacés par des contrôles plus puissants dans .NET Framework 2.0 en 2005. Ils n'étaient plus disponibles par défaut dans Visual Studio Designer Toolbox depuis de nombreuses années. Par conséquent, Microsoft nous avons décidé de supprimer ces contrôles et de se concentrer uniquement sur les nouveaux.
Les remplacements suivants sont recommandés:
Ancien contrôle (API) | Remplacement recommandé | Autres API associées supprimées |
DataGrid | DataGridView | DataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType |
ToolBar | ToolStrip | ToolBarAppearance |
ToolBarButton | ToolStripButton | ToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign |
ContextMenu | ContextMenuStrip | |
Menu | ToolStripDropDown, ToolstripDropDownMenu | MenuItemCollection |
MainMenu | MenuStrip | |
MenuItem | ToolstripMenuItem |
L'éditeur tient quand même à s'excuser et à s'expliquer :
« Premièrement, nous aurions dû apporter ces modifications avant la publication de .NET Core 3.0, et nous nous en excusons. Nous essayons d'éviter les changements tardifs, et encore plus pour les changements brusques, et cela nous fait mal de le faire.
« Au fur et à mesure que nous progressions dans le projet de conception de Windows Forms, nous nous sommes rendus compte que ces contrôles n'étaient pas alignés sur la création d'applications modernes et ne devraient jamais faire partie du port .NET Core de Windows Forms. Nous avons également constaté qu’ils auraient besoin de plus de temps pour prendre en charge que ce qui était logique.
« Notre objectif est de continuer à améliorer Windows Forms pour une DPI, une accessibilité et une fiabilité élevées. Cette modification tardive était nécessaire pour nous permettre de nous concentrer sur cette tâche ».
C++ / CLI
Microsoft a ajouté la prise en charge de la création de composants C++ / CLI pouvant être utilisés à partir de .NET Core 3.0 dans Visual Studio 2019 16.4. Pour pouvoir utiliser C++ / CLI, vous devez installer le workload « Développement desktop avec C ++ » et le composant « Support C ++ / CLI ».
Ce composant ajoute quelques modèles que vous pouvez utiliser:
- CLR Class Library (.NET Core) ;
- CLR Empty Project (.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 sous Windows. Vous ne pouvez pas utiliser de composants C++ / CLI ciblés pour .NET Framework avec .NET Core ou inversement.
« Nous vous recommandons de passer à .NET Core 3.1 dès que possible. C’est une excellente version (due en grande partie à la version 3.0) qui apporte des améliorations à de nombreux aspects de .NET Core. C'est également une version de support à long terme (LTS) qui sera prise en charge pendant trois ans ».
Microsoft en a profité pour faire une mise à jour du cycle de vie concernant .NET Core:
- .NET Core 3.0 arrivera en fin de vie dans trois mois à compter d’aujourd’hui, le 3 mars 2020.
- .NET Core 2.2 arrivera en fin de vie 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).
Source : note de version, annonce Microsoft