.NET Standard to zbiór formalnySpecyfikacja .NET API, oczekuje się, że będzie dostępny we wszystkich implementacjach .NET. Motywacją do wprowadzenia standardu .NET było zwiększenie spójności w ekosystemie .NET. ECMA 335 nadal zapewnia jednolitość zachowania implementacji .NET, ale nie istnieje podobna specyfikacja dla .NET Base Class Libraries (BCL) dla implementacji bibliotek .NET.
.NET Standard umożliwia następujące kluczowe scenariusze:
- Zdefiniuj zunifikowany, niezależny od obciążenia zestaw API BCL dla wszystkich implementacji .NET, które chcesz zaimplementować.
- Umożliwia deweloperom tworzenie przenośnych bibliotek, które mogą być używane w różnych implementacjach .NET za pośrednictwem tego samego zestawu API.
- Ogranicza lub nawet eliminuje warunkową kompilację współdzielonego kodu źródłowego dla aspektów API .NET (tylko API systemu operacyjnego).
Różne implementacje .NET są skierowane do konkretnej wersji standardu .NET. Każda implementacja .NET ogłasza najwyższą wersję standardową .NET obsługiwaną, co oznacza, że obsługuje także wcześniejsze wersje. Na przykład .NET Framework 4.6 implementuje standard .NET 1.3. Oznacza to, że udostępnia wszystkie API zdefiniowane w wersjach .NET Standard 1.0 do 1.3. Podobnie .NET Framework 4.6.1 implementuje .NET Standard 1.4, podczas gdy .NET Core 1.0 implementuje .NET Standard 1.6.
Relacja między implementacjami .NET Standard a .NET jest taka sama jak między specyfikacjami HTML a przeglądarkami. To drugie jest realizacją pierwszego.
Dlatego .NET Framework, Xamarin, oraz .NET Core, każdy z zarządzanych frameworków, implementuje . NET Standard. W miarę jak branża komputerowa nieustannie wprowadza nowy sprzęt i systemy operacyjne, w przyszłości pojawią się nowe. .NET Hosting Framework. Standard ten pozwala deweloperom aplikacji wiedzieć, że mogą polegać na spójnym zestawie API.
Każdy. Wersje .NET odpowiadają wersji .NET Standard.
API jest spójne, a przenoszenie aplikacji do różnych zarządzanych implementacji i udostępnianie narzędzi będzie prostsze.
.NET Standard jest definiowany jako osobny pakiet NuGet, ponieważ wszystkie . Implementacje .NET muszą być obsługiwane
.NET Standard vs biblioteki przenośne
Czy biblioteka przenośna nie robi tego samego?
Klasy przenośne korzystają z wspólnych API obsługiwanych przez wiele platform. W efekcie im więcej obsługiwanych platform, tym mniej dostępnych API, a dla konkretnej kombinacji platform trudno dokładnie określić, które API są obsługiwane. Dla nowej platformy istniejący PCL musi zostać ponownie skompilowany. PCL wymaga również od Microsoftu stworzenia nowego forku implementacyjnego frameworka dla każdej platformy. Z powodu. Standard NET identyfikuje API, a nie implementację, więc nie ma potrzeby rekompilacji aplikacji. Każde nowo wydane . Implementacje .NET implementują niezbędne biblioteki. Aplikacje nie muszą być ponownie kompilowane, aby działać na nowych platformach sprzętowych lub systemach operacyjnych. Teoretycznie wyjątek NotSupportedException może zostać wychwycony podczas wywoływania API, ale to powinno być rzadkie.
Wsparcie dla implementacji .NET
Poniższa tabela przedstawia minimalne wersje platform, które obsługują każdą wersję standardu .NET. Oznacza to, że późniejsze wersje wymienionych platform obsługują również odpowiadające im wersje .NET Standard. Na przykład .NET Core 2.2 obsługuje .NET Standard 2.0 i wcześniejsze.
|