.NET Standard je formálna množinaŠpecifikácia .NET API, očakáva sa, že bude dostupný vo všetkých .NET implementáciách. Motiváciou zavedenia .NET štandardu bolo zlepšenie konzistencie v ekosystéme .NET. ECMA 335 naďalej zabezpečuje jednotnosť správania implementácie .NET, ale neexistuje podobná špecifikácia pre .NET Base Class Libraries (BCL) pre implementácie .NET knižníc.
.NET Standard umožňuje nasledujúce kľúčové scenáre:
- Definujte jednotnú, na záťaž nezávislú sadu BCL API pre všetky .NET implementácie, ktoré chcete implementovať.
- Umožňuje vývojárom vytvárať prenosné knižnice, ktoré je možné použiť v rôznych .NET implementáciách cez tú istú sadu API.
- Znižuje alebo dokonca eliminuje podmienenú kompiláciu zdieľaného zdrojového kódu pre aspekty .NET API (iba OS API).
Rôzne .NET implementácie cielia na konkrétnu verziu .NET štandardu. Každá .NET implementácia oznamuje najvyššiu verziu .NET štandardu, ktorú podporuje, čo znamená, že podporuje aj predchádzajúce verzie. Napríklad .NET Framework 4.6 implementuje .NET Standard 1.3. To znamená, že sprístupní všetky API definované vo verziách .NET Standard 1.0 až 1.3. Podobne .NET Framework 4.6.1 implementuje .NET Standard 1.4, zatiaľ čo .NET Core 1.0 implementuje .NET Standard 1.6.
Vzťah medzi implementáciami .NET Standard a .NET je rovnaký ako vzťah medzi špecifikáciami HTML a prehliadačmi. To druhé je realizáciou toho prvého.
Preto .NET Framework, Xamarin, a .NET Core, každý zo spravovaných frameworkov, implementuje . NET Standard. Ako počítačový priemysel naďalej zavádza nový hardvér a operačné systémy, v budúcnosti sa objavia aj nové. .NET hostingový framework. Štandard dáva vývojárom aplikácií vedieť, že sa môžu spoľahnúť na konzistentnú sadu API.
Každý. .NET verzie zodpovedajú verzii pre .NET Standard.
API je konzistentné a portovanie aplikácií do rôznych spravovaných implementácií a poskytovanie nástrojov bude jednoduchšie.
.NET Standard je definovaný ako samostatný balík NuGet, pretože všetky . Implementácie .NET musia byť podporované
.NET Standard vs prenosné knižnice
Nerobí prenosná knižnica to isté?
Prenosné triedy používajú spoločné API, ktoré podporuje viacero platforiem. Výsledkom je, že čím viac podporovaných platforiem, tým menej dostupných API a pri konkrétnej kombinácii platforiem môže byť ťažké presne určiť, ktoré API sú podporované. Pre novú platformu musí byť existujúci PCL prekompilovaný. PCL tiež vyžaduje, aby Microsoft vytvoril nový fork implementácie frameworku pre každú platformu. Kľudne. NET Standard identifikuje API, nie implementáciu, takže nie je potrebné aplikáciu znovu kompilovať. Akékoľvek novo vydané . .NET implementácie implementujú potrebné knižnice. Aplikácie nie je potrebné znovu kompilovať, aby mohli bežať na nových hardvérových platformách alebo operačných systémoch. Teoreticky by sa výnimka NotSupportedException mohla zachytiť pri volaní API, ale to by malo byť zriedkavé.
Podpora implementácie .NET
Nasledujúca tabuľka uvádza minimálne verzie platforiem, ktoré podporujú každé .NET štandardné vydanie. To znamená, že neskoršie verzie uvedených platforiem podporujú aj zodpovedajúce verzie .NET Standard. Napríklad .NET Core 2.2 podporuje .NET Standard 2.0 a staršie.
|