Übersicht über ASP.NET Core
Von Daniel Roth, Rick Anderson und Shaun Luttin
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der Supportrichtlinie für .NET und .NET Core. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.
Wichtig
Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.
Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
ASP.NET Core ist ein plattformübergreifendes, leistungsstarkes Open-Source-Framework zum Erstellen von modernen, cloudfähigen und mit dem Internet verbundenen Apps.
ASP.NET Core ermöglicht Folgendes:
- Erstellen von Web-Apps und -diensten, IoT-Apps (Internet der Dinge) und mobilen Back-Ends
- Verwenden Ihrer bevorzugten Entwicklungstools unter Windows, macOS und Linux
- Bereitstellen in der Cloud oder im lokalen System
- Ausführen in .NET.
Was spricht für ASP.NET Core?
Millionen von Entwicklern verwenden bei der Erstellung von Web-Apps ASP.NET 4.x oder haben es verwendet. Bei ASP.NET Core handelt es sich um eine Neugestaltung von ASP.NET 4.x einschließlich Änderungen an der Architektur, die ein schlankeres Framework mit größerer Modularität ergeben.
ASP.NET Core bietet die folgenden Vorteile:
- Eine einheitliche Umgebung zum Erstellen der Webbenutzeroberfläche und von Web-APIs
- Für Testfähigkeit entwickelt.
- Razor Pages machen die Codeerstellung von seitenzentrierten Szenarios einfacher und produktiver.
- Mit Blazor können Sie C# neben JavaScript im Browser verwenden. Gemeinsames Verwenden von serverseitiger und clientseitiger App-Logik, die ausnahmslos mit .NET geschrieben wurde.
- Fähigkeit zur Entwicklung und Ausführung unter Windows, macOS und Linux.
- Open Source und mit Fokus auf der Community
- Integration von modernen clientseitigen Frameworks und Entwicklungsworkflows
- Support für Hosting-Services des Remoteprozeduraufrufs (RPC) mithilfe von gRPC
- Ein cloudfähiges auf der Umgebung basierendes Konfigurationssystem
- Integrierte Abhängigkeitsinjektion
- Eine schlanke, leistungsstarke und modulare HTTP-Anforderungspipeline
- Sie können folgende Anbieter zum Hosten verwenden:
- Parallele Versionsverwaltung
- Tools zum Vereinfachen einer modernen Webentwicklung
Erstellen von Web-APIs und Webbenutzeroberflächen mithilfe von ASP.NET Core MVC
ASP.NET Core MVC bietet Funktionen zum Erstellen von Web-APIs und Web-Apps:
- Das Muster Model-View-Controller (MVC) sorgt dafür, dass Ihre Web-APIs und Web-Apps testfähig sind.
- Razor Pages ist ein seitenbasiertes Programmiermodell, mit dem Sie Webbenutzeroberflächen einfacher und schneller erstellen können.
- Das Razor-Markup bietet eine produktive Syntax für Razor Pages und MVC-Ansichten.
- Taghilfsprogramme ermöglichen serverseitigem Code das Mitwirken am Erstellen und Rendern von HTML-Elementen in Razor-Dateien.
- Die integrierte Unterstützung für mehrere Datenformate und Inhaltsaushandlung ermöglicht Ihren Web-APIs das Erreichen einer breiten Palette von Clients, wie z.B. Browser und Mobilgeräte.
- Die Modellbindung ordnet Daten aus HTTP-Anforderungen automatisch Aktionsmethodenparametern zu.
- Die Modellvalidierung führt automatisch eine client- und serverseitige Validierung aus.
Clientseitige Entwicklung
ASP.NET Core umfasst Blazor zum Erstellen von umfangreichen interaktiven Webbenutzeroberflächen und ist auch mit anderen beliebten JavaScript-Front-End-Frameworks wie Angular, React, Vue und Bootstrap integriert. Weitere Informationen finden Sie unter ASP.NET CoreBlazor und verwandten Themen unter Clientseitige Entwicklung.
ASP.NET Core-Zielframeworks
ASP.NET Core 3.x oder höher kann nur .NET als Ziel haben.
Das Anzielen auf .NET bringt mit jedem Release mehr und mehr Vorteile mit sich. Einige Vorteile von .NET gegenüber .NET Framework sind:
- Plattformübergreifend Die Ausführung unter Windows, macOS und Linux ist möglich.
- Leistungssteigerung
- Parallele Versionsverwaltung
- Neue APIs
- Quelle öffnen
Empfohlener Lernpfad
Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials:
Führen Sie die Schritte eines Tutorials für den App-Typ aus, den Sie entwickeln oder verwalten möchten.
App-Typ Szenario Lernprogramm Web-App Neue serverseitige Webbenutzeroberflächenentwicklung Erste Schritte mit Razor Pages Web-App Verwalten einer MVC-App Erste Schritte mit MVC Web-App Clientseitige Webbenutzeroberflächenentwicklung Erste Schritte mit Blazor Web-API RESTful-HTTP-Dienste Erstellen einer Web-API† Apps für Remoteprozeduraufrufe Contract-First-Dienste mithilfe von Protokollpuffern Erste Schritte mit dem gRPC-Dienst Echtzeit-App Bidirektionale Kommunikation zwischen Servern und verbundenen Clients Erste Schritte mit SignalR Führen Sie die Schritte eines Tutorials aus, in dem die Grundlagen des Datenzugriffs erläutert werden.
Szenario Lernprogramm Neuentwicklungen Razor Pages mit Entity Framework Core Verwalten einer MVC-App MVC mit Entity Framework Core Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.
Suchen Sie im Inhaltsverzeichnis nach weiteren interessanten Themen.
†Es gibt auch ein interaktives Web-API-Tutorial. Es ist keine lokale Installation von Entwicklertools erforderlich. Der Code wird in Azure Cloud Shell in Ihrem Browser ausgeführt, und zum Testen wird curl verwendet.
Migration von .NET Framework
Eine Referenzanleitung für die Migration von ASP.NET 4.x-Apps zu ASP.NET Core finden Sie unter Aktualisieren von ASP.NET auf ASP.NET Core.
ASP.NET Core ist ein plattformübergreifendes, leistungsstarkes Open-Source-Framework zum Erstellen von modernen, cloudfähigen und mit dem Internet verbundenen Apps. ASP.NET Core ermöglicht Folgendes:
- Erstellen von Web-Apps und -diensten, IoT-Apps (Internet der Dinge) und mobilen Back-Ends
- Verwenden Ihrer bevorzugten Entwicklungstools unter Windows, macOS und Linux
- Bereitstellen in der Cloud oder im lokalen System
- Ausführen in .NET Core oder .NET Framework
Was spricht für ASP.NET Core?
Millionen von Entwicklern verwenden bei der Erstellung von Web-Apps ASP.NET 4.x oder haben es verwendet. Bei ASP.NET Core handelt es sich um eine Neugestaltung von ASP.NET 4.x mit Änderungen an der Architektur, die ein schlankeres Framework mit größerer Modularität ergeben.
ASP.NET Core bietet die folgenden Vorteile:
- Eine einheitliche Umgebung zum Erstellen der Webbenutzeroberfläche und von Web-APIs
- Für Testfähigkeit entwickelt.
- Razor Pages machen die Codeerstellung von seitenzentrierten Szenarios einfacher und produktiver.
- Mit Blazor können Sie C# neben JavaScript im Browser verwenden. Gemeinsames Verwenden von serverseitiger und clientseitiger App-Logik, die ausnahmslos mit .NET geschrieben wurde.
- Fähigkeit zur Entwicklung und Ausführung unter Windows, macOS und Linux.
- Open Source und mit Fokus auf der Community
- Integration von modernen clientseitigen Frameworks und Entwicklungsworkflows
- Support für Hosting-Services des Remoteprozeduraufrufs (RPC) mithilfe von gRPC
- Ein cloudfähiges auf der Umgebung basierendes Konfigurationssystem
- Integrierte Abhängigkeitsinjektion
- Eine schlanke, leistungsstarke und modulare HTTP-Anforderungspipeline
- Sie können folgende Anbieter zum Hosten verwenden:
- Parallele Versionsverwaltung
- Tools zum Vereinfachen einer modernen Webentwicklung
Erstellen von Web-APIs und Webbenutzeroberflächen mithilfe von ASP.NET Core MVC
ASP.NET Core MVC bietet Funktionen zum Erstellen von Web-APIs und Web-Apps:
- Das Muster Model-View-Controller (MVC) sorgt dafür, dass Ihre Web-APIs und Web-Apps testfähig sind.
- Razor Pages ist ein seitenbasiertes Programmiermodell, mit dem Sie Webbenutzeroberflächen einfacher und schneller erstellen können.
- Das Razor-Markup bietet eine produktive Syntax für Razor Pages und MVC-Ansichten.
- Taghilfsprogramme ermöglichen serverseitigem Code das Mitwirken am Erstellen und Rendern von HTML-Elementen in Razor-Dateien.
- Die integrierte Unterstützung für mehrere Datenformate und Inhaltsaushandlung ermöglicht Ihren Web-APIs das Erreichen einer breiten Palette von Clients, wie z.B. Browser und Mobilgeräte.
- Die Modellbindung ordnet Daten aus HTTP-Anforderungen automatisch Aktionsmethodenparametern zu.
- Die Modellvalidierung führt automatisch eine client- und serverseitige Validierung aus.
Clientseitige Entwicklung
ASP.NET Core integriert sich nahtlos in gängige clientseitige Frameworks und Bibliotheken, einschließlich Blazor, Angular, React, Vue und Bootstrap. Weitere Informationen finden Sie unter ASP.NET CoreBlazor und verwandten Themen unter Clientseitige Entwicklung.
ASP.NET Core, das .NET Framework anzielt.
ASP.NET Core 2.x kann für .NET Core oder .NET Framework verwendet werden. Auf .NET Framework ausgerichtete ASP.NET Core-Apps sind nicht plattformübergreifend – sie können nur unter Windows ausgeführt werden. Für gewöhnlich besteht ASP.NET Core 2.x aus .NET Standard-Bibliotheken. Bibliotheken, die mit .NET Standard 2.0 geschrieben wurden, werden auf jeder .NET-Plattform ausgeführt, die .NET Standard 2.0 implementiert.
ASP.NET Core 2.x wird unter .NET Framework-Versionen unterstützt, die .NET Standard 2.0 implementieren:
- Die neueste Version von .NET Framework wird empfohlen.
- .NET Framework 4.6.1 oder höher
ASP.NET Core 3.0 oder höher kann nur auf .NET Core ausgeführt werden. Weitere Informationen zu dieser Änderung finden Sie im Blogbeitrag zu kommenden Änderungen in ASP.NET Core 3.0.
Das Anzielen auf .NET Core bringt mit jedem Release mehr und mehr Vorteile mit sich. Einige Vorteile von .NET Core gegenüber .NET Framework sind:
- Plattformübergreifend Wird unter macOS, Linux und Windows ausgeführt.
- Leistungssteigerung
- Parallele Versionsverwaltung
- Neue APIs
- Quelle öffnen
Das Windows Compatibility Pack stellt Tausende nur unter Windows verfügbare APIs in .NET Core zur Verfügung, um die API-Lücke von .NET Framework zu .NET Core zu schließen. Diese APIs waren in .NET Core 1.x nicht verfügbar.
Empfohlener Lernpfad
Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials und Artikel:
Führen Sie die Schritte eines Tutorials für den App-Typ aus, den Sie entwickeln oder verwalten möchten.
App-Typ Szenario Lernprogramm Web-App Für Neuentwicklungen Erste Schritte mit Razor Pages Web-App Für die Verwaltung einer MVC-App Erste Schritte mit MVC Web-API Erstellen einer Web-API† Echtzeit-App Erste Schritte mit SignalR Führen Sie die Schritte eines Tutorials aus, in dem die Grundlagen des Datenzugriffs erläutert werden.
Szenario Lernprogramm Für Neuentwicklungen Razor Pages mit Entity Framework Core Für die Verwaltung einer MVC-App MVC mit Entity Framework Core Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.
Suchen Sie im Inhaltsverzeichnis nach weiteren interessanten Themen.
†Es gibt auch ein Web-API-Tutorial, das Sie vollständig im Browser ausführen können, ohne dass eine lokale IDE-Installation erforderlich ist. Der Code wird in einer Azure Cloud Shell ausgeführt, und zum Testen wird curl verwendet.
Migration von .NET Framework
Eine Referenzanleitung für die Migration von ASP.NET-Apps zu ASP.NET Core finden Sie unter Aktualisieren von ASP.NET auf ASP.NET Core.
Herunterladen eines Beispiels
Viele der Artikel und Tutorials enthalten Links zu Beispielcode.
- Laden Sie die Zip-Datei des ASP.NET Repositorys herunter.
- Entzippen Sie die Datei
AspNetCore.Docs-main.zip
. - Um auf die Beispiel-App eines Artikels im entpackten Repository zuzugreifen, verwenden Sie die URL im Beispiellink des Artikels, um zum Ordner des Beispiels zu navigieren. In der Regel wird der Beispiellink eines Artikels am Anfang des Artikels mit dem Linktext Anzeigen oder Herunterladen von Beispielcode angezeigt.
Präprozessoranweisungen in Beispielcode
In Beispiel-Apps werden die Präprozessoranweisungen #define
und #if-#else/#elif-#endif
zum selektiven Kompilieren und Ausführen unterschiedlicher Abschnitte des Beispielcodes verwendet. So werden verschiedene Szenarios veranschaulicht. Für die Beispiele, die diesen Ansatz verwenden, legen Sie die Anweisung #define
am Anfang der C#-Dateien auf das Symbol fest, das dem Szenario zugeordnet ist, welches Sie ausführen möchten. Für einige Beispiele müssen Sie möglicherweise das Symbol in mehreren Dateien definieren, um ein Szenario durchführen zu können.
Die folgende #define
-Symbolliste gibt beispielsweise an, dass vier Szenarios verfügbar sind (ein Szenario pro Symbol). Die aktuelle Beispielkonfiguration führt das TemplateCode
-Szenario aus:
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
Damit das Beispiel das ExpandDefault
-Szenario ausführt, definieren Sie das ExpandDefault
-Symbol und lassen Sie die übrigen Symbole auskommentiert:
#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode
Weitere Informationen zur Verwendung von C#-Präprozessoranweisungen, um selektiv bestimmte Codeabschnitte zu kompilieren, finden Sie unter #define (C#-Referenz) und #if (C#-Referenz).
Breaking Changes und Sicherheitsempfehlungen
Breaking Changes und Sicherheitsempfehlungen werden im Ankündigungsrepository gemeldet. Ankündigungen können durch Auswahl eines Bezeichnungsfilters auf eine bestimmte Version beschränkt werden.
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Erste Schritte mit ASP.NET Core
- Veröffentlichen einer ASP.NET Core-App in Azure mit Visual Studio
- ASP.NET Core – Grundlagen
- Im wöchentlichen ASP.NET Community Standup werden die Fortschritte und Pläne des Teams behandelt. Zudem werden neue Blogs und Drittanbietersoftware vorgestellt.