.Net Core 2 fait l’objet de publication en juin 2017 avec le support de .Net Standard 2.0 ce qui permet au framework open source de glaner un supplément de près de 20 000 API. Ce tournant est notamment marqué par l’introduction du pack de compatibilité Windows – un paquet NuGet qui inclut plusieurs API réservées à Windows comme System.Drawing, System.DirectoryServices, etc. ASP.NET Core 2.0 a apporté Razor Pages et SignalR, deux frameworks qui manquaient dans .NET Core 1.0. L’Entity Framework a pour sa part ajouté le support du lazy loading.
Il a fallu attendre 2019 pour avoir .Net Core 3.0 en version générale. Cette nouvelle version majeure de la variante open source et multiplateforme de .NET Framework comprend de nombreuses améliorations, notamment l'ajout de Windows Forms et de Windows Presentation Foundation (WPF). Elle introduit aussi de nouvelles API JSON, la prise en charge d’ARM64 et des améliorations de performance générales. Notons également qu'elle embarque C# 8.0 :
- WPF et Windows Forms : Une des principales nouveautés de cette version est la prise en charge des applications desktop. Vous pouvez maintenant créer des applications Windows Forms et WPF avec .NET Core, sous Windows. Précisons que pour les applications de bureau de .NET Framework existantes, Microsoft a également veillé à faciliter leur migration vers .NET Core. Visual Studio 2019 16.3 prend en charge la création d'applications WPF qui ciblent .NET Core. Cela inclut de nouveaux templates, un concepteur XAML (similaire au concepteur XAML existant qui cible .NET Framework) et XAML Hot Reload.
- Support de C# 8.0 : Livré avec .NET Core 3.0, C# 8.0 apporte de nombreuses améliorations. Parmi les plus notables, on peut citer les types de référence nullables. Désormais, toute variable d'un type référence est considérée comme un type référence n'acceptant pas la valeur Null. Autrement dit, par défaut, ces types seront non nullables ! Mais vous pouvez faire en sorte que le type de la variable soit nullable en ajoutant "?" au nom de type pour le déclarer comme type de référence nullable. Le but de cette fonctionnalité est d'en finir avec les exceptions de référence null très fréquentes.
C# 8.0 vient également avec les types Index et Range qui offrent une syntaxe concise pour spécifier des sous-plages dans un tableau, Span ou ReadOnlySpan. Un type Index peut être utilisé pour l’indexation. Vous pouvez en créer un à partir d'un int qui permet de compter depuis le début, ou avec un opérateur de préfixe ^ qui permet de compter depuis la fin.Code C# : Sélectionner tout 1
2
3
4
5Index i1 = 3; // numéro 3 depuis le début Index i2 = ^4; // numéro 4 depuis la fin int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"
Un type Range est quant à lui composé de deux index, un pour le début et un pour la fin, et il peut être écrit avec une expression de plage (C#) x..y.Code C# : Sélectionner tout 1
2var slice = a[i1..i2]; // { 3, 4, 5 }
- C# 8.0 inclut bien d'autres fonctionnalités comme les flux asynchrones, les déclarations using, les expressions Switch, les modèles récursifs (les modèles contenant d'autres modèles), l'implémentation par défaut des membres d'une interface, etc.
- Prise en charge JSON intégrée rapide : les utilisateurs de .NET se sont largement appuyés sur Json.NET et d’autres bibliothèques JSON populaires. Mais .NET Core 3.0 inclut une nouvelle famille d’API JSON permettant des scénarios de lecture/écriture (Utf8JsonReader et Utf8JsonWriter), l’accès aléatoire avec un modèle objet document (JsonDocument) et un sérialiseur (JsonSerializer). Les nouvelles API sont conçues pour répondre à de nombreux scénarios identiques, mais avec moins de mémoire et une exécution plus rapide. Microsoft souhaitait en effet créer une nouvelle API JSON qui tirait parti de toutes les nouvelles fonctionnalités de performance de .NET Core et qui offrait des performances appropriées. Mais il n’était pas possible de faire cela dans une base de code existante telle que Json.NET tout en maintenant la compatibilité.
Sur les bases posées avec .Net Core 3, Microsoft entend produire un environnement d’exécution .Net unique et une infrastructure partout. En d’autres termes, Microsoft va vers un seul .Net à l’avenir. Ce dernier pourra être utilisé pour cibler plusieurs (sinon toutes) plateformes : Windows, Linux, MacOS, iOS, Android, tvOS, watchOS et WebAssembly, etc. Ce futur se nomme .Net 5 – la prochaine version de .Net Core 3. La première préversion de .Net 5 sera disponible dans la première moitié devrait être disponible au premier semestre 2020. La version finale est attendue en novembre 2020. Microsoft prévoit ensuite de publier une version majeure de .Net une fois par an, ce, tous les mois de novembre.
.NET Core 3.0 arrivera en fin de vie le 3 mars 2020
Dans un billet de blog, Microsoft a annoncé que .NET Core 3.0 arrivera en fin de vie le 3 mars 2020 et recommande de passer à .NET Core 3.1. Cette dernière, qui est une version prise en charge à long terme (LTS), a été publiée en décembre 2019.
« 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 |
- .NET Core 3.0 arrivera en fin de vie 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 : Microsoft