Kürzlich wurde in einem offiziellen .NET Framework-Blog angekündigt, dass .NET Core Open Source wird .
Ironischerweise erwähnt der Autor , dass was .NET - Core im nächsten Post erläutert werden wird. Einige weitere Details werden in einem anderen Ankündigungsbeitrag erwähnt .
Aus einem mitgelieferten Diagramm:
und Artikel Text selbst würde ich annehmen, dass .NET Core (neben offensichtlichen Dingen wie Open Source) eine modulare Neuimplementierung des vollständigen .NET ist. Dh Framework-Komponenten werden nach Bedarf geladen, ähnlich wie NuGet-Pakete jetzt geladen werden. Und jetzt ist ASP.NET 5 eines der Module, die bereits implementiert sind. Ist mein Verständnis von .NET Core korrekt? Vielleicht fehlt mir etwas?
Ich habe kürzlich einen Artikel gefunden, den ich sowohl kurz als auch sehr gut fand. Es behandelt .NET Standard, .NET Core und .NET Framework sowie deren Beziehung. Ich empfehle es sehr.
Antworten:
Aus dem .NET-Blog Ankündigung der .NET 2015-Vorschau: Eine neue Ära für .NET :
Und:
Kurz gesagt: Zunächst gab es Microsoft .NET Framework , das aus einer Laufzeit, die Anwendungs- und Bibliothekscode ausführt, und einer nahezu vollständig dokumentierten Standardklassenbibliothek besteht .
Die Laufzeit ist die Common Language Runtime , die die Common Language Infrastructure implementiert und mit dem JIT-Compiler zusammenarbeitet , um den CIL-Bytecode (ehemals MSIL) auszuführen .
Die Spezifikation und Implementierung von .NET durch Microsoft war aufgrund seiner Geschichte und seines Zwecks sehr Windows- und IIS-zentriert und "fett". Es gibt Variationen mit weniger Bibliotheken, Namespaces und Typen , aber nur wenige davon waren für die Web- oder Desktop-Entwicklung nützlich oder aus rechtlicher Sicht schwierig zu portieren .
Um eine Nicht-Microsoft-Version von .NET bereitzustellen, die auf Nicht-Windows-Computern ausgeführt werden kann, musste eine Alternative entwickelt werden. Dazu muss nicht nur die Laufzeit portiert werden, sondern auch die gesamte Framework-Klassenbibliothek, um eine gute Akzeptanz zu erzielen. Um vollständig unabhängig von Microsoft zu sein, ist außerdem ein Compiler für die am häufigsten verwendeten Sprachen erforderlich.
Mono ist eine der wenigen, wenn nicht die einzige alternative Implementierung der Laufzeit , die neben Windows auf verschiedenen Betriebssystemen ausgeführt wird, fast alle Namespaces aus der Framework Class Library ab .NET 4.5 und einem VB- und C # -Compiler .
Geben Sie .NET Core ein: eine Open-Source-Implementierung der Laufzeit und eine minimale Basisklassenbibliothek. Alle zusätzlichen Funktionen werden über NuGet-Pakete bereitgestellt, wobei die spezifische Laufzeit, Framework-Bibliotheken und Pakete von Drittanbietern mit der Anwendung selbst bereitgestellt werden.
ASP.NET Core ist eine neue Version von MVC und WebAPI, die zusammen mit einer dünnen HTTP-Server-Abstraktion gebündelt ist und auf der .NET Core-Laufzeit ausgeführt wird - aber auch auf .NET Framework.
quelle
Es ist eine Teilmenge von .NET Framework, die mit der Compact Framework Edition gestartet wurde. Es entwickelte sich zu Silverlight, Windows Store und Windows Phone. Es konzentrierte sich darauf, die Bereitstellung klein zu halten, geeignet für schnelle Downloads und Geräte mit begrenzten Speicherfunktionen. Und es ist einfacher, auf Nicht-Windows-Plattformen zuzugreifen, und dies war sicherlich der Grund, warum es als Open-Source-Edition ausgewählt wurde. Die "schwierigen" und "teuren" Teile der CLR und der Basisklassenbibliotheken werden weggelassen.
Andernfalls ist es immer leicht zu erkennen, wann Sie auf eine solche Framework-Version abzielen, da viele Goodies fehlen. Sie verwenden einen bestimmten Satz von Referenzassemblys, die nur das anzeigen, was von der Laufzeit unterstützt wird. Es wird auf Ihrem Computer im
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
Verzeichnis gespeichert .Update: Nach der .NET Core 2.0-Version habe ich einige repräsentative Zahlen gesehen, die einen anständigen Einblick geben. In den letzten zwei Jahren haben sie hart daran gearbeitet, Framework-APIs auf .NET Core zurück zu portieren. .NET Core 1.0 unterstützte ursprünglich 13.000 APIs. In .NET Core 2.0 wurden 20.000 APIs hinzugefügt, sodass insgesamt 32.000 APIs verfügbar sind und etwa 70% der vorhandenen NuGet-Pakete portiert werden können. Es gibt eine Reihe von APIs, die zu stark mit Windows verbunden sind, um einfach auf Linux und MacOS portiert zu werden. Durch das kürzlich veröffentlichte Windows-Kompatibilitätspaket werden weitere 20.000 APIs hinzugefügt.
quelle
.NET Core
wird Version 5.0, die höher ist als das neueste vollständige Framework. Ich nehme an, damit meinen sie, dass das etwas anderes ist.Ich habe kürzlich einen Artikel gefunden, den ich sowohl kurz als auch sehr gut fand. Es behandelt .NET Standard, .NET Core und .NET Framework sowie deren Beziehung. Ich empfehle es sehr. Leider habe ich keine Zeit, mich anzupassen und es hier zu platzieren.
Originaler Antwortinhalt unten:
Basierend auf dem neuesten offiziellen Eintrag zu diesem Thema sind hier einige wichtige Punkte, wie ich sie sehe:
.NET Native und ASP.NET 5 sind also nur Testobjekte für die neue Framework-Konfiguration. Dies liegt möglicherweise daran, dass sie sehr unterschiedlich sind:
Sehen Sie, sie brauchen sogar separate Low-Levels, aber ein Großteil der BCL ist immer noch üblich:
Das heißt, magentafarbene Rechtecke oben werden mit neuen App-Modellen massiv hinzugefügt, aber die Basis bleibt üblich.
NuGet-Bereitstellung:
Beziehung zu aktuellen Rahmenbedingungen:
Zusammenfassung:
Grundsätzlich kann dies als .NET 4.6 mit einem geänderten Verteilungsmodell betrachtet werden, das gleichzeitig Open Source wird.
quelle
Die aktuelle Dokumentation enthält eine gute Erklärung zu .NET Core, zu verwendenden Bereichen usw. Die folgenden Eigenschaften definieren .NET Core am besten:
Und hier ist, was .NET Core beinhaltet:
quelle
.NET Core ist eine neue plattformübergreifende Implementierung von .NET-Standards (ECMA 335), die Mono ähnelt, jedoch von Microsoft selbst durchgeführt wird.
Siehe docs.microsoft.com
quelle
Microsoft erkannte das zukünftige Web-Open-Source-Paradigma und entschied sich, .NET für andere Betriebssysteme zu öffnen. .NET Core ist ein .NET Framework für Mac und Linux. Es ist ein "leichtes" .NET Framework, daher fehlen einige Funktionen / Bibliotheken.
Unter Windows würde ich weiterhin .NET Framework und Visual Studio 2015 ausführen. .NET Core ist mit der Open Source-Welt wie Node.js , npm, Yeoman , Docker usw. besser vertraut .
Mit Visual Studio Code + .NET Core können Sie vollwertige Websites und RESTful-APIs unter Mac oder Linux entwickeln, was zuvor nicht möglich war. Wenn Sie also Mac oder Ubuntu lieben und ein .NET-Entwickler sind, richten Sie es ein.
Für Mono vs. .NET Core wurde Mono als .NET Framework für Linux entwickelt, das jetzt von Microsoft (Firma Xamarin ) erworben und in der mobilen Entwicklung verwendet wird. Möglicherweise führt Microsoft Mono zu .NET Core zusammen / migriert es. Ich würde mir jetzt keine Sorgen um Mono machen.
quelle
Ich habe heute versucht, ein neues Projekt in Visual Studio 2017 zu erstellen (kürzlich von Visual Studio 2015 aktualisiert) und dabei neue Auswahlmöglichkeiten für den Projekttyp festgestellt. Entweder sind sie neu oder es ist schon eine Weile her, seit ich ein neues Projekt gestartet habe !! :) :)
Ich bin auf diesen Dokumentationslink gestoßen und fand ihn sehr nützlich, also teile ich ihn. Die Details der Aufzählungszeichen finden Sie auch im Artikel. Ich poste hier nur Kugeln:
Dieser Link enthält ein Glossar der .NET-Begriffe.
quelle
Von der Microsoft-Website :
Diese Technologien unterscheiden sich von nativem .NET darin, dass sie mit CoreCLR-Laufzeit (in der universellen Windows-Plattform verwendet ) ausgeführt werden.
Wie Sie in Ihrer Frage erwähnt haben, ist .NET Core nicht nur Open Source, sondern auch portabel [läuft unter MacOS, Windows und Linux]
Die Interna von .NET Core sind außerdem so optimiert, dass keine anderen Module aus der Kernbibliothek verwendet werden, es sei denn, dies wird von der Anwendung benötigt.
quelle
Microsoft hat gerade .NET Core v 3.0 angekündigt, eine stark verbesserte Version von .NET Core.
Weitere Informationen finden Sie in diesem großartigen Artikel: Unterschied zwischen .NET Framework und .NET Core ab April 2019.
quelle
.NET Core ist ein kostenloses und Open-Source-Framework für verwaltete Computersoftware für Windows-, Linux- und MacOS-Betriebssysteme. Es ist ein plattformübergreifender Open Source-Nachfolger von .NET Framework.
.NET Core-Anwendungen werden unter Windows, Linux und macOS unterstützt. Kurz gesagt, .NET Core ähnelt .NET Framework, ist jedoch plattformübergreifend, dh es ermöglicht die Ausführung der .NET-Anwendungen unter Windows, Linux und MacOS. .NET Framework-Anwendungen können nur auf dem Windows-System ausgeführt werden. Der grundlegende Unterschied zwischen .NET Framework und .NET Core besteht darin, dass .NET Core plattformübergreifend ist und .NET Framework nur unter Windows ausgeführt wird.
Darüber hinaus verfügt .NET Core über eine integrierte Abhängigkeitsinjektion von Microsoft, und Sie müssen keine Software / DLL-Dateien von Drittanbietern für die Abhängigkeitsinjektion verwenden.
quelle
.NET Core ist eine Open Source- und plattformübergreifende Version von .NET. Microsoft-Produkte waren neben den großen Fähigkeiten, die sie haben, für normale Benutzer immer teuer, insbesondere für Endbenutzer von Produkten, die mit .NET-Technologien hergestellt wurden.
Die meisten Low-Level-Kunden bevorzugen Linux als Betriebssystem und möchten vor .NET Core trotz der großen Fähigkeiten von Microsoft keine Microsoft-Technologien verwenden. Nach der .NET Core-Produktion ist dieses Problem jedoch vollständig gelöst und wir können unsere Kunden zufriedenstellen, ohne ihr Betriebssystem usw. zu berücksichtigen.
quelle
.NET Core ist eine Open Source- und plattformübergreifende Version von .NET Framework.
quelle