2014-06-20 8 views
10

Ich habe Videos gesehen, die ASP.NET vNext eingeführt haben, und bin mit den letzten Ankündigungs-Blog-Posts auf dem Laufenden, aber detaillierte Informationen darüber, was aus dem gesamten Framework entfernt wurde, erscheinen schlank. Hier ist, was ich glaube, ich weiß so weit:Unterschiede zwischen .Net Full Framework und dem .Net Core Framework 4.5, das von K Runtime verwendet wird?

Betrachten wir im Grunde ein Framework, das im Grunde nichts anderes enthält als das, was in mscorlib im vollen Rahmen ist, mit allem, was sonst noch über die Paketverwaltung geliefert wird? Und wenn das der Fall ist, warum sollte man den Rahmen gezielt ansprechen, wie hier beschrieben? http://blogs.msdn.com/b/webdev/archive/2014/06/17/dependency-injection-in-asp-net-vnext.aspx

Antwort

2

Der Grund, warum sie speziell zielen NET45 in der Verbindung, die Sie geliefert haben, ist, weil AutoFac ist für gebaut und hat eine Abhängigkeit von .NET 4.5. Ohne NET45 würde der Code nicht kompilieren.

Meine Annahme ist, dass sobald AutoFac (und StructureMap, und Castle Windsor, und ...), sobald vNext näher und näher kommt, wird eine Version, die das Cloud-optimierte Framework zielt darauf ab, die Abhängigkeit zu entfernen.

0

Ich finde keine originale Quelle außer einem Kommentar von David Fowler (glaube ich) auf einer Präsentation von NDC, aber CoreCLR von der K Runtime ist eigentlich eine Reinkarnation der von Silverlight 2 verwendeten CLR. Es war verwendet, weil es klein ist und als Plattform ausgelegt ist. Es gibt einige zusätzliche Informationen hier: https://stackoverflow.com/a/25720160/113225

2

Soweit ich verstehe, ist.Net Framework das vollständige Framework, das wir kennen und lieben mit allen Windows-Implementierungen und viel Code, den wir normalerweise nicht verwenden, wie sie in einigen erklären Videos ein XML-Parser.

In .NET Core entfernten sie alle unnötigen Implementierungen/Abhängigkeiten und nur die grundlegenden. Das ermöglicht auch plattformübergreifend (noch nicht), so dass man in Zukunft als einziges Framework denken könnte: CORE-Framework und auf jedem Gerät laufen zu lassen. Ihre february community standup geben viele Informationen und Einblicke in ihre Ziele und Ziele.

Ich sehe dies als einen Übergang, wenn einige Funktionen nur auf dem gesamten Framework zur Verfügung stehen, während in den Futures erwartet werden könnte, alle Funktionen für .NET Core zu sehen. Wenn sie Entity Framework für Mobile veröffentlichen möchten (EF7 zielt darauf ab), müssen sie alle Windows-Implementierungen von EF und seinen Abhängigkeiten (Framework) loswerden. So haben sie eine Nicht-Windows-Abhängigkeit vom Framework geschaffen, die auch dem Multiple Framework hilft, einige Probleme mit der Aktualisierung des Frameworks zu installieren und zu beheben, indem sie größtenteils vom System isoliert werden, das in der Anwendung liegt. Neue Probleme werden wie mehrere Kopien des gleichen Frameworks auf einer Maschine pro Anwendung auftreten, deshalb arbeiten sie an etwas namens Smart Sharing.

This post kann Ihnen helfen und Ihnen einen Einblick speziell diesen Teil:

Die Struktur von .NET Kern besteht aus zwei Hauptkomponenten, die zu hinzufügen und die Fähigkeiten des .NET Framework wie folgt erweitern :

  1. Laufzeit:

auf der gleichen Code-Basis wie die CLR .NET Framework erstellt. Enthält die gleichen GC und JIT (RyuJIT) Enthält keine Funktionen wie Anwendung Domains oder Code Access Security. Die Laufzeit wird auf NuGet geliefert (Microsoft.CoreCLR Paket)

  1. Basisklassenbibliotheken:

Sind die gleichen Code wie die Klassenbibliotheken .Net Framework, aber nicht enthalten Abhängigkeiten, so haben Sie eine kleinere Stellfläche. Verfügbar auf NuGet (System. * Paket)

und ich denke, Sie bereits Introducing .NET Core von Microsoft lesen.

In Bezug auf Ihre Bedenken bezüglich der Spezifizierung eines bestimmten Frameworks ist, dass jetzt nicht alles auf Core CLR funktioniert, also müssen Sie wählen, welches zu verwenden, oder Sie können beide Ziel und verwenden unterschiedliche Implementierungen.

Ab sofort läuft CORE nur unter Windows; Das mono-Framework hat keinen SQLLite-Provider für das Entity-Framework, aber für Core, sodass Sie beispielsweise einen InMemory- oder Azure EF-Provider verwenden und abhängig von der Umgebung auswählen können, in der Ihre Anwendung ausgeführt wird.

Wie Scott Gu auf dem Community-Standup sagt, stellen sie sich eine Zukunft vor, in der es kein Mono-Framework oder vollständiges Framework gibt, sondern nur Core, aber das wird Zeit brauchen, wenn es jemals passiert.

Verwandte Themen