.NET Standard este o mulțime formalăSpecificația API .NET, se așteaptă să fie disponibil în toate implementările .NET. Motivația din spatele introducerii standardului .NET a fost îmbunătățirea consistenței în ecosistemul .NET. ECMA 335 continuă să stabilească uniformitate pentru comportamentul implementării .NET, dar nu există o specificație similară pentru Bibliotecile de Clase de Bază .NET (BCLs) pentru implementările bibliotecilor .NET.
.NET Standard permite următoarele scenarii cheie:
- Definește un set unificat, indiferent de încărcătura de lucru, de API-uri BCL pentru toate implementările .NET pe care vrei să le implementezi.
- Permite dezvoltatorilor să construiască biblioteci portabile care pot fi folosite în diverse implementări .NET prin același set de API-uri.
- Reduce sau chiar elimină compilarea condiționată a codului sursă partajat pentru aspectele API-ului .NET (doar API-urile OS).
Diverse implementări .NET vizează o versiune specifică a standardului .NET. Fiecare implementare .NET anunță cea mai înaltă versiune a standardului .NET pe care o suportă, o afirmație care înseamnă că suportă și versiunile anterioare. De exemplu, .NET Framework 4.6 implementează .NET Standard 1.3. Adică, expune toate API-urile definite în versiunile 1.0 până la 1.3 ale standardului .NET. În mod similar, .NET Framework 4.6.1 implementează .NET Standard 1.4, în timp ce .NET Core 1.0 implementează .NET Standard 1.6.
Relația dintre standardul .NET și implementările .NET este aceeași ca relația dintre specificațiile HTML și browsere. Aceasta din urmă este realizarea primului.
Prin urmare, .NET Framework, Xamarin și .NET Core, fiecare dintre framework-urile gestionate, implementează . Standardul NET. Pe măsură ce industria calculatoarelor continuă să introducă hardware și sisteme de operare noi, vor apărea altele noi în viitor. Cadrul de găzduire .NET. Standardul le permite dezvoltatorilor de aplicații să știe că se pot baza pe un set constant de API-uri.
Fiecare. Versiunile .NET corespund unei versiuni .NET Standard.
API-ul este consecvent, iar portarea aplicațiilor către diferite implementări gestionate și furnizarea uneltelor va fi mai simplă.
.NET Standard este definit ca un pachet NuGet separat, deoarece toate fișierele . Implementările .NET trebuie să fie suportate
.NET Standard vs Biblioteci portabile
Nu face același lucru biblioteca portabilă?
Clasele portabile folosesc API-uri comune care sunt suportate de mai multe platforme. Ca urmare, cu cât sunt mai multe platforme suportate, cu atât sunt mai puține API-uri disponibile, iar pentru o anumită combinație de platforme, poate fi dificil să știi exact ce API-uri sunt suportate. Pentru o platformă nouă, PCL-ul existent trebuie recompilat. PCL cere, de asemenea, ca Microsoft să creeze un nou fork de implementare al cadrului pentru fiecare platformă. Din cauza asta. NET Standard identifică o API, nu o implementare, deci nu este nevoie să recompilezi aplicația. Orice nou-lansat . Implementările .NET implementează bibliotecile necesare. Aplicațiile nu trebuie recompilate pentru a rula pe noi platforme hardware sau sisteme de operare. Teoretic, o excepție NotSupportedException ar putea fi prinsă la apelarea API-ului, dar asta ar trebui să fie rar.
Suport pentru implementarea .NET
Tabelul următor listează versiunile minime de platformă care suportă fiecare versiune a standardului .NET. Aceasta înseamnă că versiunile ulterioare ale platformelor listate suportă și versiunile corespunzătoare .NET Standard. De exemplu, .NET Core 2.2 suportă .NET Standard 2.0 și versiunile anterioare.
|