.NET-standardi on muodollinen joukko.NET API -määrittely, jonka odotetaan olevan saatavilla kaikissa .NET-toteutuksissa. .NET Standardin käyttöönoton motiivina oli parantaa johdonmukaisuutta .NET-ekosysteemissä. ECMA 335 jatkaa .NET-toteutuksen yhdenmukaisuuden varmistamista, mutta .NET-kirjastojen toteutuksille (BCL) ei ole vastaavaa määrittelyä .NET-kirjastojen toteutuksille.
.NET Standard mahdollistaa seuraavat keskeiset skenaariot:
- Määrittele yhtenäinen, työkuormasta riippumaton BCL-rajapintojen joukko kaikille .NET-toteutuksille, jotka haluat toteuttaa.
- Mahdollistaa kehittäjille kannettavien kirjastojen rakentamisen, joita voidaan käyttää eri .NET-toteutuksissa saman API-joukon kautta.
- Vähentää tai jopa poistaa ehdollista jaetun lähdekoodin kääntämistä .NET API -aspekteille (vain käyttöjärjestelmän API:t).
Erilaiset .NET-toteutukset kohdistuvat tiettyyn .NET Standardin versioon. Jokainen .NET-toteutus ilmoittaa korkeimman tukemansa .NET Standard -version, mikä tarkoittaa, että se tukee myös aiempia versioita. Esimerkiksi .NET Framework 4.6 toteuttaa .NET Standard 1.3:n. Toisin sanoen se paljastaa kaikki API:t, jotka on määritelty .NET Standard -versioissa 1.0–1.3. Samoin .NET Framework 4.6.1 toteuttaa .NET Standard 1.4:n, kun taas .NET Core 1.0 toteuttaa .NET Standard 1.6:n.
.NET Standardin ja .NET-toteutusten välinen suhde on sama kuin HTML-määrittelyjen ja selainten välinen suhde. Jälkimmäinen on ensimmäisen toteutuminen.
Siksi .NET Framework, Xamarin ja .NET Core toteuttavat . NET Standard. Kun tietokoneteollisuus tuo jatkuvasti uusia laitteita ja käyttöjärjestelmiä, uusia tulee tulevaisuudessa. .NET-isännöintikehys. Standardi antaa sovelluskehittäjille tietää, että he voivat luottaa yhtenäiseen API-valikoimaan.
Jokaiselle. .NET-versiot vastaavat .NET Standard -versiota.
API on johdonmukainen, ja sovellusten porttaus eri hallituihin toteutuksiin sekä työkalujen tarjoaminen on helpompaa.
.NET Standard määritellään erilliseksi NuGet-paketiksi, koska kaikki . .NET-toteutuksia on tuettava
.NET-standardi vs kannettavat kirjastot
Eikö kannettava kirjasto tee samaa?
Kannettavat luokat käyttävät yhteisiä rajapintoja, joita tukevat useat alustat. Tämän seurauksena mitä enemmän alustoja tuetaan, sitä vähemmän API-rajapintoja on saatavilla, ja tietylle alustayhdistelmälle voi olla vaikeaa tietää tarkalleen, mitkä API:t ovat tuettuja. Uutta alustaa varten olemassa oleva PCL täytyy kääntää uudelleen. PCL vaatii myös, että Microsoft luo uuden framework-toteutushaaran jokaiselle alustalle. Johtuen. NET Standard tunnistaa API:n, ei toteutusta, joten sovellusta ei tarvitse kääntää uudelleen. Kaikki vastikään julkaistut. .NET-toteutukset toteuttavat tarvittavat kirjastot. Sovelluksia ei tarvitse kääntää uudelleen toimiakseen uusilla laitteistoalustoilla tai käyttöjärjestelmillä. Teoreettisesti NotSupportedException-poikkeus saatetaan havaita API:ta kutsuttaessa, mutta sen pitäisi olla harvinaista.
.NET-toteutuksen tuki
Seuraavassa taulukossa on lueteltu vähimmäisalustaversiot, jotka tukevat kutakin .NET Standard -julkaisua. Tämä tarkoittaa, että myöhemmät versiot listatuista alustoista tukevat myös vastaavia .NET Standard -versioita. Esimerkiksi .NET Core 2.2 tukee .NET Standard 2.0 ja sitä vanhempia.
|