Einführung in ASP.NET Core

Von Daniel Roth, Rick Anderson und Shaun Luttin

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

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 integriert sich nahtlos in gängige clientseitige Frameworks und Bibliotheken, einschließlich Blazor, Angular, React und Bootstrap. Weitere Informationen finden Sie unter Einführung in ASP.NET Core Blazor und verwandten Themen unter Clientseitige Entwicklung.

ASP.NET Core-Zielframeworks

ASP.NET Core 3.x und höher können nur .NET Core als Ziel haben. Allgemein besteht ASP.NET Core 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.

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 Die Ausführung unter Windows, macOS und Linux ist möglich.
  • Leistungssteigerung
  • Parallele Versionsverwaltung
  • Neue APIs
  • Quelle öffnen

Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials:

  1. 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
  2. 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
  3. Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.

  4. 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 Migrieren von ASP.NET zu 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 und Bootstrap. Weitere Informationen finden Sie unter Einführung in ASP.NET Core Blazor 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. ASP.NET Core-Apps, die .NET Framework anzielen, sind nicht plattformübergreifend, sondern 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 und höher.

ASP.NET Core 3.0 und höher kann nur in .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.

Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials und Artikel:

  1. 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
  2. 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
  3. Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.

  4. 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 integrierte Entwicklungsumgebung installiert werden muss. 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 Migrieren von ASP.NET zu ASP.NET Core.

Herunterladen eines Beispiels

Viele der Artikel und Tutorials enthalten Links zu Beispielcode.

  1. Laden Sie die Zip-Datei des ASP.NET Repositorys herunter.
  2. Entzippen Sie die Datei AspNetCore.Docs-main.zip.
  3. 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).

Bereiche in Beispielcode

Einige Beispiel-Apps enthalten Codeabschnitte, die von den C#-Anweisungen #region und #endregion umschlossen werden. Das Buildsystem der Dokumentation fügt diese Bereiche in den gerenderten Dokumentationsartikel ein.

Namen von Bereichen enthalten oft das Wort „snippet“ (Ausschnitt). Im folgenden Beispiel ist ein Bereich mit dem Namen snippet_WebHostDefaults enthalten:

#region snippet_WebHostDefaults
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    });
#endregion

In der Markdowndatei wird auf den vorherigen C#-Codeausschnitt mit der folgenden Zeile verwiesen:

[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)]

Sie können die Anweisungen #region und #endregion, die den Code umschließen, ohne Weiteres ignorieren (oder entfernen). Ändern Sie jedoch den Code innerhalb dieser Anweisungen nicht, wenn Sie die im Artikel beschriebenen Beispielszenarios durchführen möchten. Wenn Sie andere Szenarios ausprobieren möchten, können Sie den Code anpassen.

Weitere Informationen finden Sie unter Contribute to the ASP.NET documentation: Code snippets (Mitwirken an der ASP.NET-Dokumentation: Codeausschnitte).

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: