2015-04-13 15 views
50

ich folgend in fast all zukünftigen .NET Framework Diskussion siehe:Unterschied zwischen .NET Framework 4.6, .NET Einheimischer und .Net-Core

  • .NET Framework 4.6 (Full NET Framework)
  • . NET india
  • .NET Kern

Was ist der Unterschied zwischen all diesen?

Woher weiß ich, wann ich das richtige verwenden soll?

+2

Dies wird eine interessante Lektüre für Sie sein: http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx –

+0

https: //blogs.msdn. microsoft.com/dotnet/2014/12/04/introducing-net-core/ –

Antwort

60

Nach verschiedenen Links und Videos durchlaufen, ich ein interessantes Bild als Ganzes gefunden:

  • .NET:

    .NET Framework 4.6, .Net Native and .NET Core

    Aus dem Vorstehenden könnten wir die folgende leicht ableiten Framework 4.6 ist ein vollständiges Framework für alles in Bezug auf .NET, aber keine Bibliotheken & Laufzeit für Multi-Plattform (Windows, Linux und Mac) und Cloud-Bereitstellungen optimiert

  • .NET-Core auf der anderen Seite ist eine Teilmenge von .NET Framework 4.6, die vor allem für Multi-Plattform-und Cloud-Implementierungen optimieren
  • .NET india hauptsächlich Universal-Apps verwendet wird, zu entwickeln, die ganz seine (wenn auch nicht für die Web-Anwendungen) optimiert auf jedem Gerät und Plattform zu laufen, nativ

Ein interessanter Punkt ist ASP.NET:

  • Wenn wir brauchen die abwärts~~POS=TRUNC zu den Fulles Wenn wir MVC-, Web-API- oder Razor-Webseiten entwickeln, können wir diese Web-Anwendungen entweder in .NET Framework 4.6 oder in .NET Framework 4.6 bereitstellen.
  • NET-Core-Umgebung
+0

Ich werde meine Website mit MVC, Razor, eckigen js und SignalR so entwickeln, kann ich .Net Core? Eine weitere Sache werde ich Azure Cloud Hosting verwenden. – Chandru

+0

@Chandru - das ist eine neue Frage scheint es :) –

+0

@Chandru - SignalR ist auf der To-Do-Liste der .Net Core-Team. Leider nicht bis zum Zeitpunkt dieses Kommentars implementiert. – Lafi

46

TLDR: Wenn es Kern ist, ist es eine Teilmenge der Funktionalität so kann es Cross-Plattform ran. Alles, was Sie auf Core ausführen können, kann auf dem vollständigen Framework 4.6 für Windows ausgeführt werden.

.NET Framework v4.6 - Das vollständige Framework, das nur unter Windows ausgeführt werden kann. Da dies jedoch das vollständige Framework ist, bedeutet das, dass Sie WCF, WPF und alle Funktionen erhalten. Sie können sich das als Ihre normale .NET-Windows-Entwicklung vorstellen, die Sie wahrscheinlich heute tun. Es enthält ASP.NET WebForms, MVC, Core und SignalR. Wenn Sie heute .NET 4.5 verwenden, ist dies der nächste natürliche Upgrade-Pfad.

.NET Core - Ein Subset-Framework, das nicht alles im vollständigen 4.6 Framework beinhaltet. Es ist jedoch vorgesehen, unter Windows, Mac oder Linux plattformübergreifend zu laufen. Sie verlieren jedoch einige Funktionen wie WCF, WPF. Aber Sie haben immer noch ASP.NET Core (keine WebForms), aber noch nicht SignalR. Die SignalR-Unterstützung soll in einer späteren Version erscheinen.Dies verwendet die dotnet CLI (Befehlszeilenschnittstelle) zum Kompilieren von Anwendungen. Wenn Sie unter Windows arbeiten, können Sie Visual Studio verwenden.

.NET Native - Native Kompilierung des .NET Core-Frameworks. Anstatt das normale JIT-Kompilieren zur Laufzeit Ihrer EXE durchzuführen, wird dies eine AOT compilation machen, die möglicherweise einige bessere Optimierungen Ihres Codes using the C++ backend compiler (oder LLVM mit LLILC) vornehmen kann. Wenn Sie dies tun, richten Sie eine bestimmte Plattform aus, z. B. "Linux 64-Bit". Die Vorteile sind schnellere Startzeiten, potenziell geringere Speicheranforderungen, hoffentlich bessere Laufzeitleistung und die Ausgabe von nur einer einzigen Binärdatei (Sie müssen das .NET Framework nicht auf dem Zielcomputer installieren). Der Kompromiss ist jedoch Portabilität zu anderen Plattformen - Sie haben separate Binaries für Linux, MacOS, Windows, 32-Bit, 64-Bit, etc. Dies funktioniert derzeit nur für Windows Store-Apps, aber mehr Arbeit wird getan, so dass es ' Ich arbeite mit normalen .NET-Apps, einschließlich ASP.NET-Apps. Derzeit nicht geplant, Teil der .NET Core 1.0-Version zu sein.

ASP.NET Core - Die neue Art der Web-Entwicklung auf .NET Core oder Full Framework. Es enthält eine anpassbare HTTP-Pipeline, Kestrel-Webserver und better performance-Profile als die vorherige ASP.NET 4.x-Version. Dies ist plattformübergreifend kompatibel sowohl für das gesamte Framework als auch für das Core-Framework. Es enthält keine WebForms oder SignalR-Unterstützung (yet). Es ist nicht abwärtskompatibel mit ASP.NET 4, obwohl wenn Sie MVC/WebAPI jetzt verwenden, sollte MVC/WebAPI vorwärts gehen ziemlich nah sein, da es nur eine Controller Klasse geben wird. Wenn Sie WebForms verwenden möchten, haben Sie keine andere Wahl, als sich an das vollständige 4.6 Framework zu halten.

Entity Framework Core - Das neue Framework für die ORM-Entwicklung. Einst als EF7 bezeichnet, ist es das plattformübergreifende ORM-Framework, das sowohl für den vollständigen 4.6-Stack als auch für den neuen Core-Stack geeignet ist. Es ist nicht abwärtskompatibel mit EF6. Es unterstützt nur ein Code-First-Modell. Zukünftig kann es Werkzeuge geben, die dabei helfen, vorhandene EF6-EDMX-Dateien zu aktualisieren, um die Klassen für Code-First-EFCore-Implementierung zu generieren.

+0

für .net-core verwenden wir signalR version 0.2.0-preview2-22683 – crh225

Verwandte Themen