Unterschied zwischen .NET Framework 4.6, .Net Native und .Net Core
Sehe ich folgende in fast jede Zukunft .NET framework-Diskussion:
- .NET Framework 4.6 (Voll .Net framework)
- .NET Native
- .NET Core
Was ist der Unterschied zwischen all diesen?
Woher weiß ich, Wann die richtige?
InformationsquelleAutor der Frage user203687 | 2015-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem man durch diverse links und videos, ich fand ein Interessantes Bild als ganzes:
Aus den oben genannten, könnten wir leicht ableiten, sind folgende:
Interessant ist ASP.NET:
InformationsquelleAutor der Antwort user203687
TLDR: Wenn es den Kern, es ist eine Teilmenge der Funktionalität, so dass es sein kann, lief cross-plat. Alles, was Sie ausführen können, auf Core lief auf der vollen 4.6 framework für Windows.
.NET Framework v4.6 - Die vollständige framework nur unter Windows laufen. Da dies jedoch die voll framework, das bedeutet, dass Sie bekommen, WCF, WPF und alle Funktionen. Sie können denken Sie an dieses als Ihre normal .NET Entwicklung von Windows -, dass Sie wahrscheinlich heute tun. Es beinhaltet ASP.NET WebForms -, MVC -, Kern -, und SignalR. Wenn Sie verwenden .NET 4.5, heute, ist dies Ihre nächsten natürlichen upgrade-Pfad.
.NET Core -- Eine Teilmenge Rahmen, dass nicht alles umfassen, was in der full 4.6 Rahmen. Aber es soll cross-Plattform auf Windows, Mac oder Linux. Sie verlieren einige Funktionen jedoch, wie WCF, WPF. Aber Sie haben noch ASP.NET Kern (keine WebForms), aber nicht SignalR noch. SignalR-Unterstützung soll in einer späteren version. Dies nutzt die dotnet-CLI (command-line interface) für das kompilieren von Anwendungen, oder wenn Sie mit Windows haben, dann können Sie Visual Studio verwenden.
.NET Native -- Native Kompilierung der .NET Core framework. Anstelle der normalen JIT-Kompilierung zur Laufzeit Ihres .exe, dies zu tun, eine AOT-Kompilationdie möglicherweise tun kann bessere Optimierungen des Codes Verwendung der C++ - compiler-backend (oder LLVM mit LLILC). Wenn Sie dies tun, Sie Zielen auf eine bestimmte Plattform, wie "Linux-64-bit". Die Vorteile sind schneller start-up-Zeiten, die potenziell kleineren Speicherbedarf, hoffentlich bessere Laufzeit-performance, und emittiert nur ein einzelnes Binär-Datei (Sie brauchen nicht zu installieren .NET Framework auf dem Zielrechner). Der Nachteil ist jedoch die übertragbarkeit auf andere Plattformen-Sie verfügen über separate Binärdateien für Linux, MacOS, Windows, 32-bit, 64-bit, etc. Das funktioniert bisher nur für Windows Store-apps, aber mehr Arbeit getan wird, es wird also Arbeit auf normal .NET apps, einschließlich ASP.NET apps. Derzeit ist nicht geplant, um sein Teil der .NET Core Version 1.0.
ASP.NET Kern -- Die neue Art der Webentwicklung auf .NET-Core-oder der Vollständigen Rahmen. Es enthält eine anpassbare HTTP-pipeline, Kestrel web-server, und bessere Leistung profile als die Vorherige ASP.NET 4.x-version. Dies ist cross-Plattform-kompatibel über die full-framework und das Core-framework. Es beinhaltet nicht die WebForms, oder SignalR-Unterstützung (noch). Es ist nicht rückwärts kompatibel mit ASP.NET 4, obwohl, wenn man mit MVC/WebAPI, nun, dann MVC/WebAPI vorwärts gehen sollte ziemlich nah, da gibt es nur einen
Controller
Klasse. Wenn Sie wollen, sind zu verwenden, WebForms, dann haben Sie keine Wahl aber zu halten mit den vollen 4.6 Rahmen.Entity Framework Core -- Das neue framework für ORM-Entwicklung. Einmal aufgerufen, EF7, es ist die cross-Plattform ORM-framework, das für die vollständige 4.6 stack und auch die neue Core-stack. Es ist nicht rückwärts kompatibel mit EF6. Es unterstützt nur einen code-first-Modell. Kann es sein, Werkzeuge in der Zukunft helfen, aktualisieren Sie die vorhandenen EF6 .edmx-Dateien zum generieren der Klassen für code-first-EFCore Umsetzung.
InformationsquelleAutor der Antwort Tim P.