A .NET Standard egy formális halmaz.NET API specifikáció, amely várhatóan minden .NET implementációban elérhető lesz. A .NET Standard bevezetésének motivációja az volt, hogy javítsák a konzisztenciát a .NET ökoszisztémában. Az ECMA 335 továbbra is egységesíti a .NET megvalósítási viselkedést, de nincs hasonló specifikáció a .NET Base Class Libraries (BCL) rendszerekre a .NET könyvtár megvalósításához.
A .NET Standard lehetővé teszi a következő kulcsfontosságú forgatókönyveket:
- Határozz meg egy egységes, munkaterheléstől független BCL API-készletet minden .NET implementációhoz, amelyet meg akarsz valósítani.
- Lehetővé teszi a fejlesztők számára, hogy hordozható könyvtárakat építsenek, amelyek különböző .NET implementációkban használhatók ugyanazon API-halmazon keresztül.
- Csökkenti vagy akár megszünteti a megosztott forráskód feltételes fordítását a .NET API aspektusokhoz (csak OS API-khoz).
Különböző .NET megvalósítások egy adott .NET szabványverziót céloznak meg. Minden .NET implementáció bejelenti a legmagasabb támogatott .NET Standard verziót, ami azt jelenti, hogy támogatja a korábbi verziókat is. Például a .NET Framework 4.6 implementálja a .NET Standard 1.3-at. Vagyis minden API-t kitár, amelyeket a .NET Standard 1.0-tól 1.3-ig definiált verziókban definiálnak. Hasonlóképpen, a .NET Framework 4.6.1 implementálja a .NET Standard 1.4-et, míg a .NET Core 1.0 a .NET Standard 1.6-ot.
A .NET Standard és .NET megvalósítások közötti kapcsolat megegyezik a HTML specifikációk és böngészők közötti kapcsolattal. Az utóbbi az előbbi megvalósítása.
Ezért a .NET Framework, a Xamarin és a .NET Core, mindegyik kezelt keretrendszer implementálja . NET Standard. Ahogy a számítástechnika folyamatosan vezet be új hardvereket és operációs rendszereket, újak is megjelennek a jövőben. .NET Hosting Framework. A szabvány lehetővé teszi, hogy az alkalmazásfejlesztők tudják, hogy megbízhatóan megbízhatóan egy következetes API-készletre számíthatnak.
Mindegyik. A .NET verziók megfelelnek a .NET Standard verziónak.
Az API következetes, és az alkalmazások különböző menedzselt implementációkba való portolása és eszközök biztosítása egyszerűbb lesz.
A .NET Standard külön NuGet csomagként definiáljuk, mert minden . A .NET megvalósításoknak támogatni kell
.NET szabvány vs hordozható könyvtárak
Nem a hordozható könyvtár is ugyanezt csinálja?
A hordozható osztályok közös API-kat használnak, amelyeket több platform is támogat. Ennek eredményeként minél több platformot támogatnak, annál kevesebb API áll rendelkezésre, és egy adott platformkombinációnál nehéz pontosan tudni, mely API-k támogatnak. Egy új platformhoz a meglévő PCL-t újra kell fordítani. A PCL megköveteli, hogy a Microsoftnak minden platformhoz új keretrendszer megvalósítási forkát hozzon létre. Miatt. A NET Standard API-t azonosít, nem implementációt, így nincs szükség az alkalmazás újrafordítására. Bármelyik újonnan megjelent . A .NET implementációk implementálják a szükséges könyvtárakat. Az alkalmazásokat nem kell újrafordítani, hogy új hardverplatformokon vagy operációs rendszereken futhassanak tovább. Elméletileg előfordulhat, hogy egy NotSupportedException kivétel észlelhető az API hívásakor, de ez ritkának kellene lennie.
.NET megvalósítás támogatása
Az alábbi táblázat felsorolja azokat a minimális platformverziókat, amelyek támogatják az egyes .NET Standard kiadásokat. Ez azt jelenti, hogy a felsorolt platformok későbbi verziói is támogatják a megfelelő .NET Standard verziókat. Például a .NET Core 2.2 támogatja a .NET Standard 2.0 vagy korábbi verziókat.
|