Nouveautés de .NET Standard
.NET Standard est une spécification formelle qui définit un ensemble d’API avec gestion des versions, qui doit être disponible sur les implémentations de .NET conformes à cette version du standard. .NET Standard est destiné aux développeurs de bibliothèques. Une bibliothèque qui cible une version .NET Standard peut être utilisée sur n’importe quelle implémentation .NET ou Xamarin prenant en charge cette version de la norme.
.NET Standard est inclus avec le Kit de développement logiciel (SDK) .NET. Il est également inclus dans Visual Studio si vous sélectionnez la charge de travail .NET.
.NET Standard 2.1 est la dernière version de .NET Standard qui sera publiée. Pour plus d’informations, consultez .NET 5+ et .NET Standard.
Implémentations de .NET prises en charge
Les implémentations .NET suivantes prennent en charge la norme .NET Standard 2.1 :
- .NET Core 3.0 ou version ultérieure (y compris .NET 5 et versions ultérieures)
- Mono 6.4 ou ultérieur
- Xamarin.iOS 12.16 ou ultérieur
- Xamarin.Android 10.0 ou ultérieur
Les implémentations .NET suivantes prennent en charge la norme .NET Standard 2.0 :
- .NET Core 2.0 ou version ultérieure (y compris .NET 5 et versions ultérieures)
- .NET Framework 4.6.1 ou ultérieur
- Mono 5.4 ou ultérieur
- Xamarin.iOS 10.14 ou ultérieur
- Xamarin.Mac 3.8 ou ultérieur
- Xamarin.Android 8.0 ou ultérieur
- Plateforme Windows universelle 10.0.16299 ou ultérieure
Nouveautés de .NET Standard 2.1
.NET Standard 2.1 ajoute de nombreuses API à la norme. Certaines d’entre elles sont de nouvelles API, tandis que d’autres sont des API existantes qui permettent de converger davantage les implémentations .NET. Pour obtenir la liste des API ajoutées à .NET Standard 2.1, voir .NET Standard 2.1 vs 2.0.
Pour plus d’informations, consultez le billet de blog Annonce de .NET Standard 2.1.
Nouveautés de .NET Standard 2.0
.NET Standard 2.0 inclut les nouvelles fonctionnalités suivantes.
Un ensemble d’API largement étendu
Jusqu’à la version 1.6, .NET Standard incluait un sous-ensemble d’API relativement limité. Ce sous-ensemble excluait de nombreuses API utilisées dans .NET Framework ou Xamarin. Cela complique le développement en obligeant les développeurs à trouver des remplacements appropriés pour les API courantes lorsqu’ils développent des applications et des bibliothèques ciblant plusieurs implémentations .NET. .NET Standard 2.0 lève cette limitation en ajoutant plus de 20 000 API supplémentaires par rapport à .NET Standard 1.6, la version précédente de la norme. Pour obtenir la liste des API ajoutées à .NET Standard 2.0, voir .NET Standard 2.0 vs 1.6.
Voici certains des ajouts à l’espace de noms System dans .NET Standard 2.0 :
- Prise en charge de la classe AppDomain.
- Meilleure prise en charge de l’utilisation de tableaux provenant d’autres membres de la classe Array.
- Meilleure prise en charge de l’utilisation d’attributs provenant d’autres membres de la classe Attribute.
- Meilleure prise en charge du calendrier et d’autres options de mise en forme pour les valeurs DateTime.
- Ajout d’une fonctionnalité d’arrondi Decimal.
- Ajout d’une fonctionnalité à la classe Environment.
- Meilleur contrôle du récupérateur de mémoire via la classe GC.
- Meilleure prise en charge de la comparaison de chaînes, de l’énumération et de la normalisation dans la classe String.
- Prise en charge des ajustements à l’heure d’été et des durées de transition dans les classes TimeZoneInfo.AdjustmentRule et TimeZoneInfo.TransitionTime.
- Importante amélioration de la fonctionnalité dans la classe Type.
- Meilleure prise en charge de la désérialisation des objets d’exception par ajout d’un constructeur d’exception avec les paramètres SerializationInfo et StreamingContext.
Prise en charge des bibliothèques .NET Framework
De nombreuses bibliothèques ciblent .NET Framework plutôt que .NET Standard. Toutefois, la plupart des appels dans ces bibliothèques sont dirigés vers les API incluses dans .NET Standard 2.0. À partir de .NET Standard 2.0, vous pouvez accéder aux bibliothèques .NET Framework depuis une bibliothèque .NET Standard en utilisant un correctif de compatibilité. Cette couche de compatibilité est transparente pour les développeurs ; vous n’avez rien à faire pour tirer parti des bibliothèques .NET Framework.
La seule condition est que les API appelées par la bibliothèque de classes .NET Framework doivent être incluses dans .NET Standard 2.0.
Prise en charge de Visual Basic
Vous pouvez désormais développer des bibliothèques .NET Standard dans Visual Basic. Visual Studio 2019 et Visual Studio 2017, version 15.3 ou ultérieure avec la charge de travail .NET Core installée, incluent désormais un modèle de bibliothèque de classe .NET Standard. Pour les développeurs Visual Basic qui utilisent d’autres outils de développement et environnements, vous pouvez utiliser la commande dotnet new pour créer un projet de bibliothèque .NET Standard. Pour plus d’informations, consultez Prise en charge des outils pour les bibliothèques .NET Standard.
Prise en charge des outils pour les bibliothèques .NET Standard
Avec les versions .NET Core 2.0 et .NET Standard 2.0, Visual Studio 2017 et .NET CLI incluent la prise en charge des outils pour la création de bibliothèques .NET Standard.
Si vous installez Visual Studio avec la charge de travail Développement multiplateforme .NET Core, vous pouvez créer un projet de bibliothèque .NET Standard 2.0 avec un modèle de projet, comme le montre l’illustration suivante :
Si vous utilisez l’interface CLI .NET, la commande dotnet new suivante crée un projet de bibliothèque de classes qui cible .NET Standard 2.0 :
dotnet new classlib