Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 28789|Antwort: 0

[Quelle] Der Unterschied zwischen .NET Core und .NET Standard

[Link kopieren]
Veröffentlicht am 12.11.2019 10:25:55 | | | |
.NET-Standard ist eine formale Menge.NET API-Spezifikation, die voraussichtlich in allen .NET-Implementierungen verfügbar sein wird. Die Motivation hinter der Einführung des .NET-Standards war es, die Konsistenz im .NET-Ökosystem zu verbessern. ECMA 335 etabliert weiterhin Einheitlichkeit für .NET-Implementierungsverhalten, aber es gibt keine vergleichbare Spezifikation für .NET Base Class Libraries (BCLs) für .NET-Bibliotheksimplementierungen.

.NET Standard ermöglicht folgende Schlüsselszenarien:

  • Definieren Sie eine einheitliche, workload-unabhängige Menge von BCL-APIs für alle .NET-Implementierungen, die Sie implementieren möchten.
  • Ermöglicht es Entwicklern, portable Bibliotheken zu erstellen, die in verschiedenen .NET-Implementierungen über denselben API-Satz verwendet werden können.
  • Reduziert oder sogar eliminiert die bedingte Kompilierung von gemeinsamem Quellcode für .NET-API-Aspekte (nur OS-APIs).


Verschiedene .NET-Implementierungen zielen auf eine spezifische Version des .NET-Standards ab. Jede .NET-Implementierung kündigt die höchste .NET-Standardversion an, die sie unterstützt, was bedeutet, dass sie auch frühere Versionen unterstützt. Zum Beispiel implementiert das .NET Framework 4.6 .NET Standard 1.3. Das heißt, es stellt alle APIs frei, die in den .NET Standard-Versionen 1.0 bis 1.3 definiert sind. Ähnlich implementiert .NET Framework 4.6.1 .NET Standard 1.4, während .NET Core 1.0 .NET Standard 1.6 implementiert.




Die Beziehung zwischen .NET Standard- und .NET-Implementierungen ist dieselbe wie die zwischen HTML-Spezifikationen und Browsern. Letzteres ist die Realisierung des Ersteren.

Daher implementiert .NET Framework, Xamarin und .NET Core jedes der verwalteten Frameworks . NET-Standard. Da die Computerindustrie weiterhin neue Hardware und Betriebssysteme einführt, werden in Zukunft neue entstehen. .NET-Hosting-Framework. Der Standard lässt Anwendungsentwickler wissen, dass sie sich auf ein konsistentes Set von APIs verlassen können.

Jeder. .NET-Versionen entsprechen einer .NET-Standardversion.

Die API ist konsistent, und das Portieren von Anwendungen auf verschiedene verwaltete Implementierungen sowie die Bereitstellung von Tools wird einfacher sein.

.NET Standard ist als separates NuGet-Paket definiert, weil alle . .NET-Implementierungen müssen unterstützt werden


.NET-Standard vs. tragbare Bibliotheken

Macht die portable Bibliothek nicht dasselbe?

Portable-Klassen verwenden gängige APIs, die von mehreren Plattformen unterstützt werden. Daher gilt: Je mehr Plattformen unterstützt werden, desto weniger APIs sind verfügbar, und bei einer bestimmten Kombination von Plattformen kann es schwierig sein, genau zu wissen, welche APIs unterstützt werden. Für eine neue Plattform muss das bestehende PCL neu kompiliert werden. PCL verlangt außerdem, dass Microsoft für jede Plattform einen neuen Framework-Implementierungs-Fork erstellt.
Aufgrund von. NET Standard identifiziert eine API, nicht eine Implementierung, sodass die Anwendung nicht neu kompiliert werden muss. Jeder neu freigelassene . .NET-Implementierungen implementieren die notwendigen Bibliotheken. Anwendungen müssen nicht neu kompiliert werden, um auf neuen Hardwareplattformen oder Betriebssystemen auszuführen. Theoretisch könnte eine NotSupportedException-Ausnahme beim Aufruf der API erkannt werden, aber das sollte selten sein.


.NET-Implementierungsunterstützung

Die folgende Tabelle listet die minimalen Plattformversionen auf, die jede .NET Standard-Version unterstützen. Das bedeutet, dass spätere Versionen der aufgeführten Plattformen auch die entsprechenden .NET Standard-Versionen unterstützen. Zum Beispiel unterstützt .NET Core 2.2 .NET Standard 2.0 und früher.








Vorhergehend:Linux Shell Scripting Leitfaden (3. Edition)
Nächster:ASP.NET Core 3.0 Nuget-Wiederherstellung fehlschlug fehl
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com