Novità di .NET Standard

.NET Standard è una specifica formale che definisce un set di API con versioni specifiche che devono essere disponibili nelle implementazioni .NET conformi a tale versione dello standard. .NET Standard è destinato agli sviluppatori di librerie. Una libreria che ha come destinazione una versione di .NET Standard è utilizzabile in qualsiasi implementazione di .NET o Xamarin che supporta tale versione dello standard.

.NET Standard è incluso in .NET SDK. È incluso anche in Visual Studio se si seleziona il carico di lavoro .NET.

.NET Standard 2.1 è l'ultima versione di .NET Standard che verrà rilasciata. Per altre informazioni, vedere .NET 5+ e .NET Standard.

Implementazioni di .NET supportate

.NET Standard 2.1 è supportato dalle implementazioni .NET seguenti:

  • .NET Core 3.0 o versione successiva (incluso .NET 5 e versioni successive)
  • Mono 6.4 o versioni successive
  • Xamarin.iOS 12.16 o versioni successive
  • Xamarin.Android 10.0 o versioni successive

.NET Standard 2.0 è supportato dalle implementazioni .NET seguenti:

  • .NET Core 2.0 o versione successiva (incluso .NET 5 e versioni successive)
  • .NET Framework 4.6.1 o versioni successive
  • Mono 5.4 o versioni successive
  • Xamarin.iOS 10.14 o versioni successive
  • Xamarin.Mac 3.8 o versioni successive
  • Xamarin.Android 8.0 o versioni successive
  • Piattaforma UWP (Universal Windows Platform) 10.0.16299 o versioni successive

Novità di .NET Standard 2.1

.NET Standard 2.1 aggiunge molte API allo standard. Alcune di esse sono nuove API e altre sono API esistenti che consentono di convergere ulteriormente le implementazioni di .NET. Per un elenco delle API aggiunte a .NET Standard 2.1, vedere .NET Standard 2.1 vs 2.0 (Confronto tra le versioni 2.1 e 2.0 di .NET Standard)

Per altre informazioni, vedere il post di blog Annuncio di .NET Standard 2.1 .

Novità di .NET Standard 2.0

.NET Standard 2.0 include le nuove funzionalità seguenti.

Un set di API notevolmente ampliato

Nella versione 1.6 .NET Standard includeva un subset relativamente ridotto di API. Molte API escluse erano tra quelle comunemente usate in .NET Framework o Xamarin. Ciò rende lo sviluppo più complesso, poiché gli sviluppatori devono trovare sostituzioni appropriate per le API a loro ben note durante lo sviluppo di applicazioni e librerie destinate a più implementazioni .NET. .NET 2.0 Standard risolve questa limitazione rendendo disponibili più di 20.000 API rispetto a quelle disponibili in .NET Standard 1.6, la versione precedente. Per un elenco delle API aggiunte a .NET Standard 2.0, vedere .NET Standard 2.0 vs 1.6 (Confronto tra le versioni 2.0 e 1.6 di .NET Standard).

Ecco alcune delle funzionalità aggiunte allo spazio dei nomi System in .NET 2.0 Standard:

  • Supporto della classe AppDomain.
  • Supporto più efficiente dell'uso delle matrici da altri membri della classe Array.
  • Supporto più efficiente per l'uso degli attributi da altri membri della classe Attribute.
  • Supporto più efficiente del calendario e opzioni di formattazione aggiuntive per i valori DateTime.
  • Funzionalità di arrotondamento Decimal aggiuntiva.
  • Funzionalità aggiuntive nella classe Environment.
  • Miglioramento del controllo sul Garbage Collector tramite la classe GC.
  • Supporto più efficiente del confronto tra stringhe, dell'enumerazione e della normalizzazione nella classe String.
  • Supporto della rettifica relativa all'ora legale e dei tempi di transizione nelle classi TimeZoneInfo.AdjustmentRule e TimeZoneInfo.TransitionTime.
  • Sensibile miglioramento delle funzionalità nella classe Type.
  • Supporto più efficiente della deserializzazione degli oggetti eccezione tramite l'aggiunta di un costruttore di eccezioni con parametri SerializationInfo e StreamingContext.

Supporto delle librerie di .NET Framework

Molte librerie hanno come destinazione .NET Framework anziché .NET Standard. La maggior parte delle chiamate in tali librerie, tuttavia, riguardano API incluse in .NET Standard 2.0. A partire da .NET Standard 2.0, è possibile accedere alle librerie .NET Framework da una libreria .NET Standard tramite uno shim di compatibilità. Questo livello di compatibilità è trasparente per gli sviluppatori. Non è necessario eseguire alcuna operazione per sfruttare i vantaggi delle librerie .NET Framework.

L'unico requisito è che le API chiamate dalla libreria di classi di .NET Framework siano incluse in .NET Standard 2.0.

Supporto per Visual Basic

È ora possibile sviluppare librerie .NET Standard in Visual Basic. Visual Studio 2019 e Visual Studio 2017 versione 15.3 o successiva con il carico di lavoro .NET Core installato includono un modello libreria di classi .NET Standard. Per gli sviluppatori Visual Basic che usano altri strumenti e ambienti di sviluppo, è possibile usare il comando dotnet new per creare un progetto di libreria .NET Standard. Per altre informazioni, vedere Supporto degli strumenti per librerie .NET Standard.

Supporto degli strumenti per librerie .NET Standard

Con la versione 2.0 di .NET Core e .NET Standard 2.0, sia Visual Studio 2017 sia l'interfaccia della riga di comando di .NET includono il supporto degli strumenti per la creazione di librerie .NET Standard.

Se si installa Visual Studio con il carico di lavoro Sviluppo multipiattaforma .NET Core, è possibile creare un progetto di libreria .NET Standard 2.0 usando un modello di progetto, come illustrato nella figura seguente:

Add New .NET Standard library project

Se si usa l'interfaccia della riga di comando di .NET, il comando dotnet new seguente crea un progetto di libreria di classi destinato a .NET Standard 2.0:

dotnet new classlib

Vedi anche