Neuerungen in .NET Standard
.NET Standard ist eine formale Spezifikation, die mehrere APIs mit Versionsangabe definiert, die in .NET-Implementierungen verfügbar sein müssen, die dieser Version des Standards entsprechen. .NET Standard ist auf Bibliotheksentwickler ausgerichtet. Eine Bibliothek, die auf eine .NET Standard-Version abzielt, kann in jeder .NET- oder Xamarin-Implementierung verwendet werden, die diese Version des Standards unterstützt.
.NET Standard ist im .NET SDK enthalten. Die Version ist auch in Visual Studio enthalten, wenn Sie die .NET-Workload auswählen.
.NET Standard 2.1 ist die letzte Version von .NET Standard, die veröffentlicht wird. Weitere Informationen finden Sie unter .NET 5 oder höher und .NET Standard.
Unterstützte .NET-Implementierungen
.NET Standard 2.1 wird von den folgenden .NET-Implementierungen unterstützt:
- .NET Core 3.0 oder höher (einschließlich .NET 5 und höher)
- Mono 6.4 oder höher
- Xamarin.iOS 12.16 oder höher
- Xamarin.Android 10.0 oder höher
.NET Standard 2.0 wird von den folgenden .NET-Implementierungen unterstützt:
- .NET Core 2.0 oder höher (einschließlich .NET 5 und höher)
- .NET Framework 4.6.1 oder höher
- Mono 5.4 oder höher
- Xamarin.iOS 10.14 oder höher
- Xamarin.Mac 3.8 oder höher
- Xamarin.Android 8.0 oder höher
- Universal Windows Platform 10.0.16299 oder höher
Neuerungen in .NET Standard 2.1
.NET Standard 2.1 erweitert die Standard-Version um zahlreiche APIs. Einige von ihnen sind neue APIs, und andere sind vorhandene APIs, die dazu beitragen, die .NET-Implementierungen noch weiter zu konvergieren. Eine Liste der APIs, die zu .NET Standard 2.1 hinzugefügt wurden, finden Sie unter .NET Standard 2.1 und 2.0.
Weitere Informationen finden Sie im Blogbeitrag zur Ankündigung von .NET Standard 2.1.
Neuerungen in .NET Standard 2.0
.NET Standard 2.0 umfasst folgende neue Features.
Ein umfassend erweiterter Satz von APIs
Bis einschließlich Version 1.6 enthielt .NET Standard eine vergleichsweise kleine Teilmenge von APIs. Nicht enthalten war eine Vielzahl von APIs, die häufig in .NET Framework oder Xamarin verwendet wurden. Dies verkompliziert die Entwicklung, da Entwickler geeigneten Ersatz für vertraute APIs finden müssen, wenn sie Anwendungen und Bibliotheken für verschiedene .NET-Implementierungen erstellen. In .NET Standard 2.0 besteht diese Einschränkung nicht mehr, da über 20.000 mehr APIs hinzugefügt wurden, als in .NET Standard 1.6, der vorherigen Version, verfügbar waren. Eine Liste der APIs, die zu .NET Standard 2.0 hinzugefügt wurden, finden Sie unter .NET Standard 2.0 vs. 1.6.
Im Folgenden finden Sie einige der neuen Features für den System-Namespace im .NET Standard 2.0:
- Unterstützung für die AppDomain-Klasse.
- Bessere Unterstützung für die Arbeit mit Arrays dank zusätzlicher Member in der Array-Klasse.
- Bessere Unterstützung für die Arbeit mit Attributen dank zusätzlicher Member in der Attribute-Klasse.
- Bessere Kalenderunterstützung und zusätzliche Formatierungsoptionen für DateTime-Werte.
- Zusätzliche Decimal-Rundungsfunktionen.
- Zusätzliche Funktionen in der Environment-Klasse.
- Erweiterte Steuerung des Garbage Collector über die GC-Klasse.
- Erweiterte Unterstützung für Zeichenfolgenvergleich, Enumeration und Normalisierung in der String-Klasse.
- Unterstützung für Sommerzeitanpassungen und Übergangszeiten in den Klassen TimeZoneInfo.AdjustmentRule und TimeZoneInfo.TransitionTime.
- Erheblich erweiterte Funktionalität in der Type-Klasse.
- Bessere Unterstützung für die Deserialisierung von Ausnahmeobjekten durch Hinzufügen eines Ausnahmekonstruktors mit den Parametern SerializationInfo und StreamingContext.
Unterstützung für .NET Framework-Bibliotheken
Viele Bibliotheken haben .NET Framework statt .NET Standard als Ziel. Die meisten Aufrufe in diesen Bibliotheken gelten jedoch für APIs, die in .NET Standard 2.0 enthalten sind. Ab .NET Standard 2.0 können Sie mithilfe eines Kompatibilitätsshims von einer .NET Standard-Bibliothek auf .NET Framework-Bibliotheken zugreifen. Diese Kompatibilitätsebene ist transparent für Entwickler – Sie müssen keine besondere Maßnahme ergreifen, um von .NET Framework-Bibliotheken zu profitieren.
Die einzige Anforderung besteht darin, dass die von der .NET Framework-Klassenbibliothek aufgerufenen APIs in .NET Standard 2.0 enthalten sein müssen.
Unterstützung für Visual Basic
Sie können jetzt .NET Standard-Bibliotheken in Visual Basic entwickeln. Visual Studio 2019 und Visual Studio 2017, Version 15.3 oder höher, mit installierter .NET Core-Workload enthalten jetzt eine Vorlage für die .NET Standard-Klassenbibliothek. Visual Basic-Entwickler, die andere Entwicklungstools und -umgebungen verwenden, können den Befehl dotnet new verwenden, um ein Projekt für die .NET Standard-Bibliothek zu erstellen. Weitere Informationen finden Sie unter Toolunterstützung für .NET Standard-Bibliotheken.
Toolunterstützung für .NET Standard-Bibliotheken
Mit der Veröffentlichung von .NET Core 2.0 und .NET Standard 2.0 enthalten sowohl Visual Studio 2017 als auch die .NET-CLI Toolunterstützung für die Erstellung von .NET Standard-Bibliotheken.
Wenn Sie Visual Studio mit der Workload für die plattformübergreifende .NET Core-Entwicklung installieren, können Sie ein .NET Standard 2.0-Bibliotheksprojekt mithilfe einer Projektvorlage wie in der folgenden Abbildung veranschaulicht erstellen:
Wenn Sie die .NET-CLI verwenden, erstellt der folgende dotnet new-Befehl ein Klassenbibliotheksprojekt für .NET Standard 2.0:
dotnet new classlib