.NET-standaard is een formele verzameling.NET API-specificatie, verwacht beschikbaar te zijn in alle .NET-implementaties. De motivatie achter de introductie van de .NET-standaard was het verbeteren van consistentie in het .NET-ecosysteem. ECMA 335 blijft uniformiteit vestigen voor .NET-implementatiegedrag, maar er is geen vergelijkbare specificatie voor .NET Base Class Libraries (BCLs) voor .NET-bibliotheekimplementaties.
.NET Standard maakt de volgende belangrijke scenario's mogelijk:
- Definieer een uniforme, workload-onafhankelijke set van BCL-API's voor alle .NET-implementaties die je wilt implementeren.
- Stelt ontwikkelaars in staat draagbare bibliotheken te bouwen die in verschillende .NET-implementaties kunnen worden gebruikt via dezelfde set API's.
- Vermindert of elimineert zelfs de conditionele compilatie van gedeelde broncode voor .NET API-aspecten (alleen OS-API's).
Verschillende .NET-implementaties richten zich op een specifieke versie van de .NET-standaard. Elke .NET-implementatie kondigt de hoogste .NET Standard-versie aan die het ondersteunt, een verklaring die betekent dat het ook eerdere versies ondersteunt. Bijvoorbeeld, het .NET Framework 4.6 implementeert .NET Standard 1.3. Dat wil zeggen, het stelt alle API's bloot die zijn gedefinieerd in .NET Standard versies 1.0 tot en met 1.3. Evenzo implementeert .NET Framework 4.6.1 .NET Standard 1.4, terwijl .NET Core 1.0 .NET Standard 1.6 implementeert.
De relatie tussen .NET Standard- en .NET-implementaties is dezelfde als die tussen HTML-specificaties en browsers. Het laatste is de realisatie van het eerste.
Daarom implementeren .NET Framework, Xamarin en .NET Core, elk van de beheerde frameworks. NET Standard. Naarmate de computerindustrie nieuwe hardware en besturingssystemen blijft introduceren, zullen er in de toekomst nieuwe verschijnen. .NET Hostingframework. De standaard laat applicatieontwikkelaars weten dat ze kunnen vertrouwen op een consistente set API's.
Elk van hen. .NET-versies komen overeen met een .NET Standard-versie.
De API is consistent en het porteren van applicaties naar verschillende beheerde implementaties en het aanbieden van tools zal eenvoudiger zijn.
.NET Standard wordt gedefinieerd als een apart NuGet-pakket, omdat alle . .NET-implementaties moeten worden ondersteund
.NET-standaard versus draagbare bibliotheken
Doet de draagbare bibliotheek niet hetzelfde?
Draagbare klassen gebruiken gemeenschappelijke API's die door meerdere platforms worden ondersteund. Daardoor geldt: hoe meer platforms die worden ondersteund, hoe minder API's beschikbaar, en voor een bepaalde combinatie van platforms kan het lastig zijn om precies te weten welke API's worden ondersteund. Voor een nieuw platform moet de bestaande PCL opnieuw worden gecompileerd. PCL vereist ook dat Microsoft voor elk platform een nieuwe framework-implementatiefork maakt. Vanwege NET Standard identificeert een API, niet een implementatie, dus het is niet nodig om de applicatie opnieuw te compileren. Elke nieuw vrijgekomen . .NET-implementaties implementeren de benodigde bibliotheken. Applicaties hoeven niet opnieuw gecompileerd te worden om op nieuwe hardwareplatforms of besturingssystemen te draaien. Theoretisch zou een NotSupportedException-uitzondering kunnen worden gevangen bij het aanroepen van de API, maar dat zou zeldzaam moeten zijn.
.NET-implementatieondersteuning
De volgende tabel geeft de minimale platformversies weer die elke .NET Standard-release ondersteunen. Dit betekent dat latere versies van de vermelde platforms ook de bijbehorende .NET Standard-versies ondersteunen. Bijvoorbeeld, .NET Core 2.2 ondersteunt .NET Standard 2.0 en eerder.
|