Übersicht über ASP.NET 5

Ursprünglicher Autor: Tom FitzMacken
  • Übersetzung
ASP.NET 5 bringt erhebliche Änderungen an der ASP.NET-Plattform. Dieser Artikel beschreibt die neuen Konzepte in ASP.NET 5 und erklärt, wie sie bei der Entwicklung moderner Webanwendungen helfen.

Einführung in ASP.NET 5.


ASP.NET 5 ist ein Stack ohne redundantes .NET zum Erstellen moderner Webanwendungen. Wir haben es von Grund auf neu entwickelt, um eine optimierte Plattform für die Entwicklung von Anwendungen bereitzustellen, die in der Cloud bereitgestellt oder auf eigenen Servern ausgeführt werden. Um die Flexibilität bei Gebäudelösungen zu unterstützen, besteht diese Plattform aus modularen Komponenten mit minimalem Overhead.
ASP.NET 5 enthält die folgenden Funktionen:

  • Neue flexible und plattformübergreifende Laufzeit
  • Neue modulare Pipeline für HTTP-Anforderungen
  • Gebrauchsfertige Cloud-Konfiguration
  • Ein einheitliches Programmiermodell, das MVC, Web-API und Webseiten kombiniert
  • Die Fähigkeit, Änderungen zu sehen, ohne das Projekt neu zu erstellen
  • Verwenden mehrerer Versionen von .NET Framework nebeneinander
  • Selbsthosting oder Hosting auf IIS möglich
  • Neue Tools in Visual Studio 2015
  • GitHub Open Source

Die Änderungen, die wir für ASP.NET 5 vorgenommen haben, basierten auf Kundenanfragen und Rückmeldungen. Diese Änderungen vereinfachen die Entwicklung, das Hosting und die Wartung und konzentrieren sich auf moderne Webanwendungen.

Ihre Legacy-Anwendungen können ohne Änderungen auf der neuen Version von ASP.NET ausgeführt werden. Um die neuen Funktionen in ASP.NET 5 nutzen zu können, müssen Sie den vorhandenen Code auf ein neues Framework portieren. Sie werden viele Ähnlichkeiten zwischen ASP.NET 5 und früheren Versionen von ASP.NET feststellen. Durch das Portieren des Codes sollen bestimmte Problembereiche behoben und nicht die gesamte Anwendung neu geschrieben werden.

Dieser Artikel beschreibt die Richtung von ASP.NET 5 und erläutert die Änderungen.

Laden Sie Visual Studio 2015 Preview herunter


Sie können bereits mit ASP.NET 5 arbeiten, indem Sie Visual Studio 2015 Preview herunterladen . Weitere Informationen zu den Inhalten dieser Version finden Sie unter Visual Studio 2015-Vorschau .

In diesem Artikel





Warum wurde ASP.NET neu gestaltet?


Die Notwendigkeit einer flexiblen plattformübergreifenden Laufzeit

In der Vergangenheit wurde .NET Framework als einzelne, umfassende Installation verwendet. In jeder neuen .NET-Version wurden neue Features hinzugefügt, aber alte wurden selten entfernt, sodass die Größe des Frameworks stetig zunahm. Dieser Ansatz stellt sicher, dass ein Computer mit installiertem .NET jede Art von .NET-Anwendung unterstützen kann. Dies bedeutet jedoch, dass jede Anwendung von Funktionen abhängig ist, die nicht tatsächlich verwendet werden.

Wenn für eine der Technologien in .NET ein kritisches Update erforderlich ist, erhalten Sie eine Benachrichtigung, dass ein wichtiges Update verfügbar ist, auch wenn dieser Teil von .NET nicht von Ihren Anwendungen verwendet wird. Sie müssen entscheiden, ob Sie dieses Update installieren und die Anwendung unterbrechen oder die Updates ignorieren möchten, in der Hoffnung, dass das Update nicht wirklich benötigt wird.

ASP.NET 5 bietet Ihnen mehr Flexibilität, da Sie in drei Varianten der Laufzeitumgebung arbeiten können:
  1. Full .NET CLR
    Full .NET CLR ist die Standardlaufzeit für Projekte in Visual Studio. Es bietet einen vollständigen Satz von APIs und ist die beste Wahl für die Abwärtskompatibilität.
  2. Core CLR (Cloud-optimierte Laufzeit)
    Core CLR ist eine Laufzeitumgebung für ASP.NET 5-Projekte, die nicht erforderlich ist und vollständig modular aufgebaut ist. Diese CLR wurde für das Komponentenmodell überarbeitet. Es ist jetzt möglich, nur die Funktionen einzubeziehen, die in Ihrer Anwendung benötigt werden. Sie fügen einfach Komponenten als NuGet-Pakete hinzu. Folglich hängt Ihre Anwendung nur von den erforderlichen Funktionen ab. Mit diesem Ansatz zur Entwicklung einer Laufzeitumgebung können wir Komponentenaktualisierungen schneller bereitstellen, da jede Komponente nach einem eigenen Zeitplan aktualisiert wird. Die Core-CLR benötigt für die Vollversion der .NET-CLR etwa 11 Megabyte anstatt etwa 200 Megabyte. Die Core-CLR kann direkt mit Ihrer Anwendung bereitgestellt werden, und verschiedene Versionen der Core-CLR können nebeneinander ausgeführt werden (beide werden unten ausführlicher beschrieben).
  3. Plattformübergreifende CLR
    Wir werden eine plattformübergreifende Laufzeit für Linux und Mac OS X veröffentlichen. Mit dieser Laufzeit können Sie .NET-Anwendungen auf Mac- und Linux-Geräten entwickeln und ausführen. Wir arbeiten eng mit der Mono-Community zusammen. Vor der Veröffentlichung können Sie Mono CLR für die plattformübergreifende Entwicklung verwenden. Weitere Informationen finden Sie unter ASP.NET vNext-Anwendungsentwicklung auf dem Mac ( Anmerkung des Übersetzers : Der August-Artikel ist als Referenz verfügbar, auf Habré gibt es einen Beitrag, in dem der aktuelle Stand der Dinge beschrieben wird).


Standardmäßig verwenden neue Visual Studio-Projekte die vollständige .NET-CLR. Sie können die Core-CLR in den Konfigurationseigenschaften Ihres Projekts angeben.

Bild

Überall hosten

Mit ASP.NET 5 können Sie Ihre Anwendung auf IIS oder im Self-Hosting-Modus hosten. Wenn Sie die Kern-CLR verwenden, können Sie die Anwendung mit allen im Bereitstellungspaket gesammelten Abhängigkeiten bereitstellen. Somit sind die Anwendung und ihre Abhängigkeiten vollständig autonom und hängen nicht mehr von der Installation von .NET auf dem System ab. Die Anwendung kann auf jeder Art von Gerät oder Hosting-Plattform ausgeführt werden.

Diese neue Gelegenheit gibt viel Freiheit. Wir empfehlen weiterhin IIS als beste Option für das Hosting, aber Sie können bei Bedarf eine andere Hosting-Plattform verwenden. Ihre Hosting-Einstellungen bestimmen nicht mehr, welches Framework für die Entwicklung verwendet werden soll und umgekehrt.

Ein Beispiel für das Hosten einer Anwendung außerhalb von IIS: Erstellen einer Web-API in MVC 6 .

Verwenden Sie verschiedene Versionen von .NET nebeneinander

Wenn Anwendungen auf einem Server von einer einzigen systemweiten Installation von .NET Framework abhängig sind, werden alle Anwendungen auf derselben .NET-Version ausgeführt. Diese Situation gibt Anlass zur Sorge, wenn Sie ein Upgrade auf eine neue Version von .NET Framework in Betracht ziehen. Möglicherweise möchten Sie, dass einige Ihrer Anwendungen die neueste Version von .NET verwenden, aber Sie sind nicht sicher, ob alle Ihre alten Anwendungen ordnungsgemäß mit der neuen Version funktionieren.

Glücklicherweise behebt ASP.NET 5 dieses Problem. Sie können Abhängigkeiten innerhalb des Bereitstellungspakets definieren und die .NET-Version für jede Anwendung angeben. Sie erhalten für einige Anwendungen alle Vorteile der neuesten Version und können für den Rest nur die alte Version verwenden. Alle diese verschiedenen Versionen arbeiten problemlos nebeneinander. Um Anwendungen mit verschiedenen Versionen nebeneinander auszuführen, müssen Sie die Ziel-Core-CLR für diese auswählen.

Vereinfachen Sie das Abhängigkeitsmanagement

ASP.NET 5 bietet eine neue, einfache Möglichkeit, Abhängigkeiten in Ihren Projekten zu verwalten. Sie müssen dem Projekt keine Assemblyverweise mehr hinzufügen, sondern verwalten Abhängigkeiten, indem Sie auf NuGet-Pakete verweisen. Sie können NuGet-Pakete mit dem NuGet-Paketmanager hinzufügen oder die JSON-Datei (project.json) bearbeiten, in der die in Ihrem Projekt verwendeten NuGet-Pakete und -Versionen aufgeführt sind. Um weitere Abhängigkeiten hinzuzufügen, schreiben Sie einfach den Namen und die Versionsnummer des NuGet-Pakets in die Datei project.json.

Bild

In Visual Studio 2015 unterstützt Sie IntelliSense bei der Suche nach erschwinglichen NuGet-Paketen.

Bild

Die Datei project.json enthält nur NuGet-Pakete, die dem Projekt direkt hinzugefügt wurden. Wenn Sie ein NuGet-Paket hinzufügen, das von anderen Paketen abhängt, werden diese sekundären Abhängigkeiten geladen, jedoch nicht in der Datei project.json aufgeführt. Mit diesem Ansatz können Sie die Datei project.json übersichtlich und einfach verwalten. Wenn Sie das NuGet-Paket aus project.json entfernen, werden die sekundären Abhängigkeiten auch gelöscht, wenn keine anderen Pakete vorhanden sind, die sie benötigen.

Dank des JSON-Formats ist das Abhängigkeitsmanagement auch dann einfach, wenn Visual Studio nicht installiert ist. Sie können die Datei project.json in einem beliebigen Texteditor öffnen und Änderungen vornehmen, z. B. die Abhängigkeiten der in der Cloud bereitgestellten Anwendung aktualisieren.

Vermeiden Sie Duplikationen in MVC, Web-API und Webseiten

In der Vergangenheit enthielten MVC, Web API und Webseiten verschiedene Implementierungen ähnlicher Funktionen. MVC und die Web-API stellen beispielsweise Routing bereit, aber die MVC-Routingklassen befinden sich im Namespace System.Web.Mvc.Routing und ähnliche Web-API-Klassen befinden sich in System.Web.Http.Routing. Webseiten und MVC verwenden beide die Razor-Syntax, aber einige NuGet-Pakete sind nur mit der einen oder anderen Implementierung kompatibel.

In ASP.NET 5 werden MVC, Web-APIs und Webseiten in einem einzigen Framework namens MVC 6 zusammengeführt. Diese Zusammenführung entfernt Duplikate aus dem Framework und erleichtert die Anwendungsentwicklung. Abhängig davon, ob Sie MVC, Web-API oder Webseiten verwenden, müssen Sie keinen etwas anderen Code mehr schreiben.

In dieser Vorschau-Version wurden MVC und Web-API in MVC 6 kombiniert.Webseiten werden in MVC 6 in einer späteren Version hinzugefügt.

HTTP-Leistung verbessern

ASP.NET 5 führt eine neue Software-Pipeline für HTTP-Anforderungen ein, die alle unnötigen Funktionen überflüssig macht. Dieser Förderer ist modular aufgebaut, Sie können nur die Komponenten hinzufügen, die benötigt werden. Die App verfügt über eine größere Bandbreite, indem der Overhead reduziert wird. Die neue Pipeline unterstützt auch Owin .

Bereit für die Cloud

Wenn Sie ein neues ASP.NET 5-Projekt erstellen, ist dieses Projekt für eine einfache Bereitstellung in der Cloud strukturiert. Visual Studio 2015 bietet ein neues Umgebungskonfigurationssystem, das die Datei Web.config ersetzt. Mit dem neuen System können Sie benannte Werte aus verschiedenen Quellen abfragen (z. B. JSON-, XML- oder Umgebungsvariablen). Sie geben Werte für jede Umgebung an, und nach der Bereitstellung liest Ihre Anwendung einfach die richtigen Werte.

Wir bieten auch Diagnose- und Tracing-Tools, mit denen sich Anwendungsprobleme in der Cloud leicht erkennen lassen.

Abhängigkeitsinjektionsintegration

Die Abhängigkeitsinjektion ist in ASP.NET 5 integriert. Sie können Ihren IoC-Container zum Registrieren von Abhängigkeiten verwenden. Die Abhängigkeit von Injektionen erleichtert die Bereitstellung der richtigen Services für Ihre Einsatzumgebung. Weitere Informationen finden Sie unter Dependecy Injection in ASP.NET vNext .


Open Source und transparent machen

Der gesamte Code für ASP.NET 5 ist auf GitHub verfügbar . Der Code ist nicht nur verfügbar, wir verwenden die GitHub-Repositorys für unsere gesamte Entwicklung. Sie können genau sehen, welche Änderungen vorgenommen wurden und wann sie vorgenommen wurden. Sie können den Code herunterladen und Änderungen vornehmen.

Durch die Entwicklung von ASP.NET 5 auf GitHub erleichtern wir das Verständnis des Codes und unserer geplanten Entwicklung. Sie können Ihre Änderungen anbieten oder eine benutzerdefinierte Implementierung von ASP.NET entwickeln.

Bereitstellung einer flexiblen Entwicklungsumgebung

Visual Studio 2015 bietet einen einfachen Ansatz zum Entwickeln von ASP.NET-Anwendungen. Sie nehmen einfach Änderungen am Code vor, speichern die Änderungen und aktualisieren die Seite im Browser. Sie werden Browseränderungen sehen, ohne das Projekt neu zu erstellen.

Bild

Sie können den Code des Webprojekts oder den Code der vom Projekt referenzierten Klassenbibliothek ändern. Sie können ein Projekt ausführen (STRG + F5), anstatt sich im Debug-Modus zu befinden, um die Änderungen anzuzeigen.

Visual Studio verwendet den Roslyn-Compiler für die dynamische Kompilierung. Die volle Leistungsfähigkeit des kompilierten Frameworks steht Ihnen weiterhin zur Verfügung, aber die Entwicklung schafft das Gefühl, eine interpretierte Sprache zu verwenden.

Jede Funktion in der grafischen Oberfläche von Visual Studio entspricht einer Befehlszeilenoperation. Sie können problemlos zwischen der Verwendung der Benutzeroberfläche und dem Schreiben von Skripten in der Befehlszeile wechseln.

Schließlich können Sie andere Code-Editoren für ASP.NET 5-Projekte verwenden.

Was ist mit Webformularen?


Sie können Ihre Anwendung mit Web Forms weiterentwickeln und sich darauf verlassen, dass Web Forms ein integraler Bestandteil der .NET-Webentwicklungsplattform ist. Wir konzentrieren uns weiterhin auf das Hinzufügen neuer Funktionen zu Web Forms, damit die Entwicklungserfahrung mit den aktuellen Webpraktiken übereinstimmt.

Web Forms 4.6 enthält die folgenden neuen Funktionen:
  • HTTP 2
  • Asynchrones Bindungsmodell
  • Roslyn CodeDOM-Compiler

Vorhandene Web Forms-Anwendungen werden unter IIS mit .NET 4.6 weiterhin unverändert ausgeführt. Sie können keine Web Forms-Anwendungen mit der Core CLR verwenden.

Klicken Sie hier, um ein Video zu den neuen Funktionen in Web Forms 4.6 zu sehen. Eine Beschreibung der zahlreichen Änderungen für Web Forms in Visual Studio 2013 Update 2 finden Sie unter Verbesserungen an ASP.NET-Webforms.

Was ist mit alten Apps?


Sie könnten befürchten, dass Sie nach so vielen Änderungen in ASP.NET 5 nun alle Ihre Anwendungen neu schreiben müssen? Keine Sorge. Anwendungen, die auf früheren Versionen von ASP.NET basieren, können weiterhin mit dem neuen .NET Framework verwendet werden. Sie müssen diese Anwendungen nicht aktualisieren oder portieren, es sei denn, Sie benötigen neue Funktionen von ASP.NET 5.

Beispielsweise Ihre Anwendungen, die derzeit Web Forms, MVC 5, Web API 2, SignalR 2, Webseiten 3 oder Entity Framework 6 verwenden voll im neuen Framework unverändert unterstützt. Sie müssen jedoch die vollständige .NET-CLR verwenden, um ältere Anwendungen auszuführen, da nur diese CLR vollständige Kompatibilität mit früheren Versionen bietet.

Die Kern-CLR hat eine etwas eingeschränkte API. Um die Core-CLR zu verwenden, muss eine Anwendung nur die Typen und Member verwenden, die in dieser Laufzeit verfügbar sind.

Verwenden Sie die Portability Analyzer-API, um sicherzustellen, dass Ihre Anwendung in der Core CLR-Laufzeit ausgeführt werden kann . Dieses Tool informiert Sie darüber, auf welchen Plattformen Ihre Anwendung ausgeführt werden kann und welche Abhängigkeiten den Start der Anwendung auf anderen Plattformen blockieren. Auf diese Weise können Sie den Umfang der erforderlichen Änderungen besser verstehen und neue Typen oder Member als Ersatz für nicht unterstützte Typen anbieten.

MVC 6- und SignalR 3-Anwendungen verwenden die neue HTTP-Pipeline, sodass sie nicht mit Anwendungen kompatibel sind, die System.Web verwenden. Um eine vorhandene Anwendung auf MVC 6 oder SignalR 3 zu aktualisieren, müssen Sie ein neues Projekt in Visual Studio 2015 erstellen und den Code anschließend in das neue Projekt übertragen. Wenn Sie portieren, müssen Sie den nicht unterstützten Code ändern.

Jetzt auch beliebt: