Derzeit versuche ich etwas über den .NET Plattform Standard zu lernen. Ich bin ziemlich verwirrt über die Idee von "verschiedenen Plattformen".Was sind die Plattformen im .NET Platform Standard?
Ich werde versuchen, meinen Standpunkt klar zu machen. Was ich derzeit über das .NET Framework verstehe, ist, dass .NET grob gesagt aus der CLR, der BCL und unterstützender Software besteht, um die CLR zu booten und die Schnittstelle zwischen der virtuellen Maschine und dem zugrunde liegenden Betriebssystem bereitzustellen.
Also, wenn wir mit dem .NET Framework programmieren, zielen wir tatsächlich auf einige Versionen des Frameworks ab, weil die Typen, die wir vom BCL verwenden, mit dem Framework geliefert werden und daher von der spezifischen Version abhängen.
Nun, .NET Core ist ganz anders als ich verstanden habe. Es ist nicht alles so zusammen gepackt. Wir haben die CoreCLR, die eine leichte VM ist, um die IL zu betreiben, die CoreFX, die Bibliotheken, die ordnungsgemäß als NuGet Pakete organisiert sind, und wir hatten bis jetzt die DNX/DNVM/DNU, die die unterstützenden Sachen wie das Booten der CoreCLR und die Anbindung an die OS.
Trotzdem, wenn wir das Framework auf Windows 7, Windows 8 oder Windows 10 installieren, codieren wir gegen das Framework.
nun auf dem .NET-Plattform Standard-spec sehen wir die folgende Definition:
Platform - z.B. .NET Framework 4.5, .NET Framework 4.6, Windows Phone 8.1, Monotouch, UWP usw.
Auch sehen wir, dass nach einer Liste von Plattformen, die
- .NET Framework 2.0 enthält - 4.6
- Windows 8
- Windows Phone 8,1
- 4 Silverlight 5
- DNX auf .NET Framework 4.5.1 - 4.6
- DNX auf .NET Core 5.0
Jetzt verwirrt mich das vollständig. Ich denke immer: Wir codieren gegen das .NET Framework und das Framework ist das Framework egal was.
Aber hier haben wir diese Plattformen, die das .NET-Framework als nur eine der vielen Plattformen enthält. Wir haben zum Beispiel Windows 8, aber warte mal, das Ausführen von .NET unter Windows 8 ist nicht das Gleiche wie das Ausführen von .NET unter anderen Betriebssystemen? Warum ist es von der .NET Framework 2.0 - 4.6-Plattform getrennt?
Wir haben auch DNX als eine spezifische Plattform. Das wundert mich: Die Plattform ist die "Unterstützung" beim Starten der virtuellen Maschine und beim Bereitstellen der Schnittstelle mit dem Betriebssystem? Oder die Plattform enthält die virtuelle Maschine?
Wie auch immer, wie ich sehen kann, bin ich ziemlich verwirrt. Was sind diese Plattformen tatsächlich und wie verhält es sich mit meinem aktuellen Verständnis von .NET Framework? Warum wird .NET Framework 2.0 - 4.6 auch separat beschrieben? Ist nicht alles beschrieben hier einige Version von .NET Framework, außer .NET Core?
Es gibt keine * "virtuelle Maschine" * in .NET. – IInspectable
@IInspectable http://blogs.msdn.com/b/brada/archive/2005/01/12/351958.aspx "Die Quintessenz ist, dass die CLR und JVM in der gleichen Klasse sind, ob Sie diese Klasse von aufrufen Software "virtuelle Maschinen" "Execution Engines" hängt von Ihrer Perspektive ab. " – Rob
Ich dachte immer über die CLR als eine Art von virtuellen Maschine. Eine Software, die als Sandbox fungiert, auf der die Anwendung ausgeführt wird. Wir geben dieser VM den IL-Bytecode und der enthaltene JIT-Compiler erstellt den nativen Code und führt ihn in dieser speziellen Sandbox aus. Obwohl ich die CLR nie im Detail studiert habe, beschreiben die Dokumente auf GitHub es als "eine vollständige, hochgradige virtuelle Maschine, die entworfen wurde, um eine große Vielfalt von Programmiersprachen und Interoperabilität zwischen ihnen zu unterstützen". Das ließ mich glauben, dass mein grobes Verständnis vernünftig war. – user1620696