.NET Standard je formální množinaSpecifikace .NET API, očekává se, že bude dostupný ve všech .NET implementacích. Motivací pro zavedení .NET Standard bylo zlepšení konzistence v ekosystému .NET. ECMA 335 nadále zajišťuje jednotnost chování implementace .NET, ale neexistuje podobná specifikace pro .NET Base Class Libraries (BCL) pro implementace .NET knihoven.
.NET Standard umožňuje následující klíčové scénáře:
- Definujte jednotnou, na zátěž nezávislou sadu BCL API pro všechny .NET implementace, které chcete implementovat.
- Umožňuje vývojářům vytvářet přenosné knihovny, které lze použít v různých .NET implementacích prostřednictvím stejné sady API.
- Snižuje nebo dokonce eliminuje podmíněnou kompilaci sdíleného zdrojového kódu pro aspekty .NET API (pouze OS API).
Různé implementace .NET cílí na konkrétní verzi .NET Standardu. Každá implementace .NET oznamuje nejvyšší verzi .NET Standard, kterou podporuje, což znamená, že podporuje i předchozí verze. Například .NET Framework 4.6 implementuje .NET Standard 1.3. To znamená, že zpřístupňuje všechna API definovaná ve verzích .NET Standard 1.0 až 1.3. Podobně .NET Framework 4.6.1 implementuje .NET Standard 1.4, zatímco .NET Core 1.0 implementuje .NET Standard 1.6.
Vztah mezi implementacemi .NET Standard a .NET je stejný jako vztah mezi HTML specifikacemi a prohlížeči. Druhá je realizace toho prvního.
Proto .NET Framework, Xamarin, a .NET Core, každý z řízených frameworků, implementuje . NET Standard. Jak počítačový průmysl nadále zavádí nový hardware a operační systémy, v budoucnu se objeví i nové. .NET hostingový framework. Standard dává vývojářům aplikací vědět, že se mohou spolehnout na konzistentní sadu API.
Každý. Verze .NET odpovídají verzi pro .NET Standard.
API je konzistentní a přenášení aplikací do různých spravovaných implementací a poskytování nástrojů bude jednodušší.
.NET Standard je definován jako samostatný balíček NuGet, protože všechny . Implementace .NET musí být podporovány
.NET Standard vs přenosné knihovny
Nedělá přenosná knihovna totéž?
Přenosné třídy používají společná API, která jsou podporována více platformami. Výsledkem je, že čím více podporovaných platforem, tím méně dostupných API a u konkrétní kombinace platforem může být obtížné přesně určit, která API jsou podporována. Pro novou platformu je nutné stávající PCL znovu zkompilovat. PCL také vyžaduje, aby Microsoft vytvořil nový fork pro implementaci frameworku pro každou platformu. Kvůli. NET Standard identifikuje API, nikoli implementaci, takže není potřeba aplikaci znovu kompilovat. Jakýkoli nově vydaný . Implementace .NET implementují potřebné knihovny. Aplikace není třeba překompilovat, aby běžely na nových hardwarových platformách nebo operačních systémech. Teoreticky by výjimka NotSupportedException mohla být zachycena při volání API, ale to by mělo být vzácné.
Podpora implementace .NET
Následující tabulka uvádí minimální verze platforem, které podporují každou verzi .NET Standard. To znamená, že pozdější verze uvedených platforem podporují i odpovídající verze .NET Standard. Například .NET Core 2.2 podporuje .NET Standard 2.0 a starší verzi.
|