.NET-standarden er en formell mengde.NET API-spesifikasjon, forventes å være tilgjengelig i alle .NET-implementasjoner. Motivasjonen bak introduksjonen av .NET-standarden var å forbedre konsistensen i .NET-økosystemet. ECMA 335 fortsetter å etablere enhetlighet for .NET-implementeringsatferd, men det finnes ingen tilsvarende spesifikasjon for .NET Base Class Libraries (BCLs) for .NET-bibliotekimplementasjoner.
.NET Standard muliggjør følgende nøkkelscenarier:
- Definer et enhetlig, arbeidsbelastningsuavhengig sett av BCL-API-er for alle .NET-implementasjoner du ønsker å implementere.
- Gjør det mulig for utviklere å bygge bærbare biblioteker som kan brukes i ulike .NET-implementasjoner gjennom det samme settet med API-er.
- Reduserer eller eliminerer til og med betinget kompilering av delt kildekode for .NET API-aspekter (kun OS-API-er).
Ulike .NET-implementasjoner retter seg mot en spesifikk versjon av .NET-standarden. Hver .NET-implementering annonserer den høyeste .NET Standard-versjonen den støtter, en setning som betyr at den også støtter tidligere versjoner. For eksempel implementerer .NET Framework 4.6 .NET Standard 1.3. Det vil si at den eksponerer alle API-er definert i .NET Standard-versjonene 1.0 til 1.3. På samme måte implementerer .NET Framework 4.6.1 .NET Standard 1.4, mens .NET Core 1.0 implementerer .NET Standard 1.6.
Forholdet mellom .NET Standard- og .NET-implementasjoner er det samme som forholdet mellom HTML-spesifikasjoner og nettlesere. Det siste er realiseringen av førstnevnte.
Derfor implementerer .NET Framework, Xamarin og .NET Core, hvert av de administrerte rammeverkene. NET-standard. Etter hvert som dataindustrien fortsetter å introdusere ny maskinvare og operativsystemer, vil nye dukke opp i fremtiden. .NET Hosting-rammeverk. Standarden lar applikasjonsutviklere vite at de kan stole på et konsistent sett med API-er.
Hver. .NET-versjoner tilsvarer en .NET Standard-versjon.
API-et er konsistent, og portering av applikasjoner til ulike administrerte implementasjoner og tilby verktøy vil være enklere.
.NET Standard defineres som en separat NuGet-pakke, fordi alle . .NET-implementasjoner må støttes
.NET-standard vs bærbare biblioteker
Gjør ikke det bærbare biblioteket det samme?
Portable klasser bruker felles API-er som støttes av flere plattformer. Som et resultat, jo flere plattformer som støttes, desto færre API-er er tilgjengelige, og for en bestemt kombinasjon av plattformer kan det være vanskelig å vite nøyaktig hvilke API-er som støttes. For en ny plattform må den eksisterende PCL-en kompileres på nytt. PCL krever også at Microsoft lager en ny rammeverksimplementeringsfork for hver plattform. På grunn av. NET Standard identifiserer et API, ikke en implementasjon, så det er ikke nødvendig å kompilere applikasjonen på nytt. Enhver nylig frigitt . .NET-implementasjoner implementerer de nødvendige bibliotekene. Applikasjoner trenger ikke å kompileres på nytt for å kjøre på nye maskinvareplattformer eller operativsystemer. Teoretisk sett kan et NotSupportedException-unntak bli fanget opp når API-et kalles, men det burde være sjeldent.
.NET-implementeringsstøtte
Tabellen nedenfor viser minimum plattformversjoner som støtter hver .NET Standard-utgivelse. Dette betyr at senere versjoner av de oppførte plattformene også støtter tilsvarende .NET Standard-versjoner. For eksempel støtter .NET Core 2.2 .NET Standard 2.0 og tidligere.
|