Warum

2016-06-30 1 views
9

haupt auf Windows Server ASP.NET-Core auf .NET-Core über .NET laufen, da ich über ASP.NET Core und .NET Core hörte ich gefragt haben, warum Sie ein ASP.NET Core web application laufen auf .NET Core über .NET entwickeln möchten, wenn Sie einen Windows ausgeführt werden Server, wie Windows Server 2012? Ich kann verstehen, dass wenn Sie für Cross-Plattform für etwas anderes wie Ubuntu entwickeln, aber wenn Sie einen Windows-Server ausführen, warum möchten Sie die .NET Core Route entwickeln?Warum

Was sind die Vorteile (falls vorhanden)? Ich fühle mich, als würde ich hier etwas vermissen? Ist es der ideale Weg, ASP.NET Web-Entwicklung und Bereitstellung in Zukunft zu tun? Wann möchten Sie das vollständige .NET Framework für ASP.NET Web-Entwicklung anstelle des .NET Core Frameworks verwenden?

Nicht jeder entwickelt für Cross-Plattform? Ich habe mein Leben lang für Windows-Server entwickelt und musste nie etwas plattformübergreifend machen. Ich denke nicht, dass ich jemals etwas plattformübergreifend mit .NET entwickeln werde - ich werde wahrscheinlich etwas anderes als .NET verwenden (wenn ich diesen Weg jemals gehe).

Ich hoffe, dass jemand helfen kann, meine Verwirrung zu klären?

+1

scheint völlig legitim, nur auf Desktop-Framework auf Win 2012 Server zu bleiben. Ich kann mir nur vorstellen, dass .NET Core häufiger aktualisiert wird als das gesamte Desktop-Framework. Auch wenn wir Container auf Nano-Server bekommen, wäre die kleinere Grundfläche von .NET Core von Vorteil. –

+0

@ DanielA.White Meine Frage ist ziemlich spezifisch. –

Antwort

3

Lauf ASP.NET-Core auf den Voll Frameworks funktioniert gut, wenn Sie auf Windows und in der Tat ausgeführt werden, die den Ansatz der ich meine alten Web Forms für die Portierung von Anwendungen ausgewählt haben. Wenn Sie keine plattformübergreifende Unterstützung benötigen, ist ASP.NET Core für das gesamte Framework eine gute Option.

Das .NET Core Framework ist bei weitem nicht so umfassend wie das Full Framework und es kann sehr viel schwieriger sein, eine Legacy-Anwendung dorthin zu portieren. Zum Beispiel unterstützt es derzeit keine Bildbearbeitung.

Einer der großen Vorteile des Targeting von .NET Core Framework ist neben der Tatsache, dass es plattformübergreifend ist, dass es wesentlich kleiner ist als das Full Framework und über die Dateikopie mit Ihrer Anwendung bereitgestellt werden kann. Dies bedeutet, dass auf dem Zielserver vor der Bereitstellung kein .Net-Framework installiert sein muss, um den Code ausführen zu können. Dies kann in einigen Cloud-Hosting-Situationen hilfreich sein, in denen Sie keine Kontrolle über die Installation auf Serverebene haben und hilfreich bei der Bereitstellung in Umgebungen mit eingeschränkter Verfügbarkeit wie IoT-Geräten sein können.

Das heißt, ich vermute, dass es viele ASP.NET Core-Anwendung geschrieben wird, um das Full Framework zu unterstützen. In gewisser Weise ist es eine schöne Paarung. Auf der einen Seite erhalten Sie die superleichte und schnelle ASP.NET Core Web-Plattform mit Tag Helpers und all diese Güte, und auf der anderen Seite haben Sie immer noch Zugriff auf Windows zu einem voll ausgestatteten Framework, das so viele .Net Entwickler kennen und lieben .

+0

Vielen Dank für Ihre Kopie und eingefügt Antwort wie folgt :) –

+0

@ BrendanVogt Thanks! –

8

.NET Core

ASP.NET auf .NET-Core oder auf dem voll .NET Framework ausgeführt werden kann. Das .NET Framework läuft unter Windows nur und verwendet die volle Fußabdruck des .NET-Framework.

Sie können immer noch die vollständige .NET-Framework verwenden, wenn Sie nicht brauchen, gehen Sie wie folgt: ist

.NET Core-Host/OS Agnostiker

Sie Ihre Anwendungen auf verschiedenen laufen OS und Gastgeber:

  • Linux, Windows, MAC
  • IIS-Konsole app ..

und kann in Geräte-, Cloud- und eingebetteten/IoT-Szenarien verwendet werden.

Modularer Aufbau

.NET Core ist eine modulare Laufzeit und Bibliothek Implementierung dass eine Teilmenge des .NET Framework enthält.

Bedeutet, Sie können nur die benötigten Pakete über nuget installieren.

Portabilität:

Sie können die CoreCLR mit Ihrer Anwendung verpacken und bereitstellen, Ihre Anwendung der Abhängigkeit von einer installierten Version von .NET (z eliminiert wird.NET Framework unter Windows). Sie können mehrere Anwendungen Side-by-Side-Host verschiedene Versionen des CoreCLR verwenden und sie einzeln aktualisieren, anstatt gezwungen, alle von ihnen gleichzeitig zu aktualisieren.

Weniger Stellplatz

Durch die CoreFX Bibliotheken Factoring und ermöglicht individuelle Anwendungen in nur jene Teile CoreFX sie benötigen (eine sogenannte „Pay-for-play“ -Modell zu ziehen), können serverbasierte Anwendungen mit ASP.NET ihre Abhängigkeiten minimieren.

App-Modelle

.NET Kern nicht alle .NET Framework-app-Modelle unterstützt, teilweise weil viele von ihnen auf Windows-Technologien gebaut werden, wie WPF (auf DirectX gebaut). Die Konsolen- und ASP.NET Core-App-Modelle werden sowohl von .NET Core als auch von .NET Framework unterstützt.

APIs

.NET Kern viele derselben enthält, aber weniger, als die APIs Rahmen .NET und mit einem anderen factoring (Montagenamen sind unterschiedlich; Typ Form abweichenden in Schlüsselfällen). Diese Unterschiede erfordern derzeit in der Regel Änderungen an Port-Quelle zu .NET Core. .NET Core implementiert die .NET-Standardbibliotheks-API, die im Laufe der Zeit mehr von der .NET Framework-BCL-API zu wird.

Subsystemen

.NET-Core implementiert eine Teilmenge der Subsysteme in .NET Framework, mit dem Ziel, eine einfachere Implementierung und Programmiermodell. Für Beispiel wird Code Access Security (CAS) nicht unterstützt, während Reflection unterstützt wird.

Patches/Updates:

Dies wiederum reduziert die Häufigkeit, mit der Patches und Updates auf den Rahmen diese Anwendungen auswirken wird, da nur auf die einzelnen Stücke Änderungen von CoreFX, das von der Anwendung genutzt wird, hat Auswirkungen auf die Anwendung.

Bereitstellung:

Eine kleinere Entfaltungsgröße für die Anwendung ist ein Nebeneffekt, und ein die eher einen Unterschied macht, wenn vielen Anwendungen eingesetzt werden Seite-an-Seite auf einem gegebener Server. Kann in Ihre App aufgenommen oder Seite an Seite benutzer- oder maschinenweit installiert werden.

Open Source:

Die .NET-Core-Plattform ist Open Source, mit MIT und Apache 2 Lizenzen. Die Dokumentation ist unter CC-BY lizenziert. .NET Core ist ein .NET Foundation-Projekt. .NET Core ist Open Source, während eine schreibgeschützte Teilmenge von .NET Framework Open Source ist.

enter image description here

+0

Ihre Dokumentation Snippet ist so prähistorisch :) –