Einführung in ASP.NET CoreIntroduction to ASP.NET Core

Von Daniel Roth, Rick Anderson und Shaun LuttinBy Daniel Roth, Rick Anderson, and 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 is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ASP.NET Core ermöglicht Folgendes:With ASP.NET Core, you can:

  • Erstellen von Web-Apps und -diensten, IoT-Apps (Internet der Dinge) und mobilen Back-EndsBuild web apps and services, Internet of Things (IoT) apps, and mobile backends.
  • Verwenden Ihrer bevorzugten Entwicklungstools unter Windows, macOS und LinuxUse your favorite development tools on Windows, macOS, and Linux.
  • Bereitstellen in der Cloud oder im lokalen SystemDeploy to the cloud or on-premises.
  • Ausführen in .NET CoreRun on .NET Core.

Was spricht für ASP.NET Core?Why choose ASP.NET Core?

Millionen von Entwicklern verwenden bei der Erstellung von Web-Apps ASP.NET 4.x oder haben es verwendet.Millions of developers use or have used ASP.NET 4.x to create web apps. 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 is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework.

ASP.NET Core bietet die folgenden Vorteile:ASP.NET Core provides the following benefits:

Erstellen von Web-APIs und Webbenutzeroberflächen mithilfe von ASP.NET Core MVCBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC bietet Funktionen zum Erstellen von Web-APIs und Web-Apps:ASP.NET Core MVC provides features to build web APIs and web apps:

Clientseitige EntwicklungClient-side development

ASP.NET Core integriert sich nahtlos in gängige clientseitige Frameworks und Bibliotheken, einschließlich Blazor, Angular, React und Bootstrap.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Weitere Informationen finden Sie unter Einführung in ASP.NET Core Blazor und verwandten Themen unter Clientseitige Entwicklung.For more information, see Einführung in ASP.NET Core Blazor and related topics under Client-side development.

ASP.NET Core-ZielframeworksASP.NET Core target frameworks

ASP.NET Core 3.x und höher können nur .NET Core als Ziel haben.ASP.NET Core 3.x and later can only target .NET Core. Allgemein besteht ASP.NET Core aus .NET Standard-Bibliotheken.Generally, ASP.NET Core is composed of .NET Standard libraries. Bibliotheken, die mit .NET Standard 2.0 geschrieben wurden, werden auf jeder .NET-Plattform ausgeführt, die .NET Standard 2.0 implementiert.Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

Das Anzielen auf .NET Core bringt mit jedem Release mehr und mehr Vorteile mit sich.There are several advantages to targeting .NET Core, and these advantages increase with each release. Einige Vorteile von .NET Core gegenüber .NET Framework sind:Some advantages of .NET Core over .NET Framework include:

  • PlattformübergreifendCross-platform. Die Ausführung unter Windows, macOS und Linux ist möglich.Runs on Windows, macOS, and Linux.
  • LeistungssteigerungImproved performance
  • Parallele VersionsverwaltungSide-by-side versioning
  • Neue APIsNew APIs
  • Quelle öffnenOpen source

Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials:We recommend the following sequence of tutorials for an introduction to developing ASP.NET Core apps:

  1. Führen Sie die Schritte eines Tutorials für den App-Typ aus, den Sie entwickeln oder verwalten möchten.Follow a tutorial for the app type you want to develop or maintain.

    App-TypApp type SzenarioScenario LernprogrammTutorial
    Web-AppWeb app Neue serverseitige WebbenutzeroberflächenentwicklungNew server-side web UI development Erste Schritte mit Razor PagesGet started with Razor Pages
    Web-AppWeb app Verwalten einer MVC-AppMaintaining an MVC app Erste Schritte mit MVCGet started with MVC
    Web-AppWeb app Clientseitige WebbenutzeroberflächenentwicklungClient-side web UI development Erste Schritte mit BlazorGet started with Blazor
    Web-APIWeb API RESTful-HTTP-DiensteRESTful HTTP services Erstellen einer Web-APICreate a web API
    Apps für RemoteprozeduraufrufeRemote Procedure Call app Contract-First-Dienste mithilfe von ProtokollpuffernContract-first services using Protocol Buffers Erste Schritte mit dem gRPC-DienstGet started with a gRPC service
    Echtzeit-AppReal-time app Bidirektionale Kommunikation zwischen Servern und verbundenen ClientsBidirectional communication between servers and connected clients Erste Schritte mit SignalRGet started with SignalR
  2. Führen Sie die Schritte eines Tutorials aus, in dem die Grundlagen des Datenzugriffs erläutert werden.Follow a tutorial that shows how to do basic data access.

    SzenarioScenario LernprogrammTutorial
    NeuentwicklungenNew development Razor Pages mit Entity Framework CoreRazor Pages with Entity Framework Core
    Verwalten einer MVC-AppMaintaining an MVC app MVC mit Entity Framework CoreMVC with Entity Framework Core
  3. Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. Suchen Sie im Inhaltsverzeichnis nach weiteren interessanten Themen.Browse the table of contents for other topics of interest.

†Es gibt auch ein interaktives Web-API-Tutorial.†There's also an interactive web API tutorial. Es ist keine lokale Installation von Entwicklertools erforderlich.No local installation of development tools is required. Der Code wird in Azure Cloud Shell in Ihrem Browser ausgeführt, und zum Testen wird curl verwendet.The code runs in an Azure Cloud Shell in your browser, and curl is used for testing.

Migration von .NET FrameworkMigrate from .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.For a reference guide to migrating ASP.NET 4.x apps to ASP.NET Core, see 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 is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. ASP.NET Core ermöglicht Folgendes:With ASP.NET Core, you can:

  • Erstellen von Web-Apps und -diensten, IoT-Apps (Internet der Dinge) und mobilen Back-EndsBuild web apps and services, Internet of Things (IoT) apps, and mobile backends.
  • Verwenden Ihrer bevorzugten Entwicklungstools unter Windows, macOS und LinuxUse your favorite development tools on Windows, macOS, and Linux.
  • Bereitstellen in der Cloud oder im lokalen SystemDeploy to the cloud or on-premises.
  • Ausführen in .NET Core oder .NET FrameworkRun on .NET Core or .NET Framework.

Was spricht für ASP.NET Core?Why choose ASP.NET Core?

Millionen von Entwicklern verwenden bei der Erstellung von Web-Apps ASP.NET 4.x oder haben es verwendet.Millions of developers use or have used ASP.NET 4.x to create web apps. 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 is a redesign of ASP.NET 4.x, with architectural changes that result in a leaner, more modular framework.

ASP.NET Core bietet die folgenden Vorteile:ASP.NET Core provides the following benefits:

Erstellen von Web-APIs und Webbenutzeroberflächen mithilfe von ASP.NET Core MVCBuild web APIs and web UI using ASP.NET Core MVC

ASP.NET Core MVC bietet Funktionen zum Erstellen von Web-APIs und Web-Apps:ASP.NET Core MVC provides features to build web APIs and web apps:

Clientseitige EntwicklungClient-side development

ASP.NET Core integriert sich nahtlos in gängige clientseitige Frameworks und Bibliotheken, einschließlich Blazor, Angular, React und Bootstrap.ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including Blazor, Angular, React, and Bootstrap. Weitere Informationen finden Sie unter Einführung in ASP.NET Core Blazor und verwandten Themen unter Clientseitige Entwicklung.For more information, see Einführung in ASP.NET Core Blazor and related topics under Client-side development.

ASP.NET Core, das .NET Framework anzielt.ASP.NET Core targeting .NET Framework

ASP.NET Core 2.x kann für .NET Core oder .NET Framework verwendet werden.ASP.NET Core 2.x can target .NET Core or .NET Framework. ASP.NET Core-Apps, die .NET Framework anzielen, sind nicht plattformübergreifend, sondern können nur unter Windows ausgeführt werden.ASP.NET Core apps targeting .NET Framework aren't cross-platform—they run on Windows only. Für gewöhnlich besteht ASP.NET Core 2.x aus .NET Standard-Bibliotheken.Generally, ASP.NET Core 2.x is made up of .NET Standard libraries. Bibliotheken, die mit .NET Standard 2.0 geschrieben wurden, werden auf jeder .NET-Plattform ausgeführt, die .NET Standard 2.0 implementiert.Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

ASP.NET Core 2.x wird unter .NET Framework-Versionen unterstützt, die .NET Standard 2.0 implementieren:ASP.NET Core 2.x is supported on .NET Framework versions that implement .NET Standard 2.0:

  • Die neueste Version von .NET Framework wird empfohlen..NET Framework latest version is recommended.
  • .NET Framework 4.6.1 und höher..NET Framework 4.6.1 and later.

ASP.NET Core 3.0 und höher kann nur in .NET Core ausgeführt werden.ASP.NET Core 3.0 and later will only run on .NET Core. Weitere Informationen zu dieser Änderung finden Sie im Blogbeitrag zu kommenden Änderungen in ASP.NET Core 3.0.For more details regarding this change, see A first look at changes coming in ASP.NET Core 3.0.

Das Anzielen auf .NET Core bringt mit jedem Release mehr und mehr Vorteile mit sich.There are several advantages to targeting .NET Core, and these advantages increase with each release. Einige Vorteile von .NET Core gegenüber .NET Framework sind:Some advantages of .NET Core over .NET Framework include:

  • PlattformübergreifendCross-platform. Wird unter macOS, Linux und Windows ausgeführt.Runs on macOS, Linux, and Windows.
  • LeistungssteigerungImproved performance
  • Parallele VersionsverwaltungSide-by-side versioning
  • Neue APIsNew APIs
  • Quelle öffnenOpen source

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.To help close the API gap from .NET Framework to .NET Core, the Windows Compatibility Pack made thousands of Windows-only APIs available in .NET Core. Diese APIs waren in .NET Core 1.x nicht verfügbar.These APIs weren't available in .NET Core 1.x.

Als Einführung in die Entwicklung von ASP.NET Core-Apps empfehlen wir die folgenden Tutorials und Artikel:We recommend the following sequence of tutorials and articles for an introduction to developing ASP.NET Core apps:

  1. Führen Sie die Schritte eines Tutorials für den App-Typ aus, den Sie entwickeln oder verwalten möchten.Follow a tutorial for the type of app you want to develop or maintain.

    App-TypApp type SzenarioScenario LernprogrammTutorial
    Web-AppWeb app Für NeuentwicklungenFor new development Erste Schritte mit Razor PagesGet started with Razor Pages
    Web-AppWeb app Für die Verwaltung einer MVC-AppFor maintaining an MVC app Erste Schritte mit MVCGet started with MVC
    Web-APIWeb API Erstellen einer Web-APICreate a web API
    Echtzeit-AppReal-time app Erste Schritte mit SignalRGet started with SignalR
  2. Führen Sie die Schritte eines Tutorials aus, in dem die Grundlagen des Datenzugriffs erläutert werden.Follow a tutorial that shows how to do basic data access.

    SzenarioScenario LernprogrammTutorial
    Für NeuentwicklungenFor new development Razor Pages mit Entity Framework CoreRazor Pages with Entity Framework Core
    Für die Verwaltung einer MVC-AppFor maintaining an MVC app MVC mit Entity Framework CoreMVC with Entity Framework Core
  3. Lesen Sie die Übersicht über die ASP.NET Core-Grundlagen, die für alle App-Typen gelten.Read an overview of ASP.NET Core fundamentals that apply to all app types.

  4. Suchen Sie im Inhaltsverzeichnis nach weiteren interessanten Themen.Browse the Table of Contents for other topics of interest.

†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.†There's also a web API tutorial that you follow entirely in the browser, no local IDE installation required. Der Code wird in einer Azure Cloud Shell ausgeführt, und zum Testen wird curl verwendet.The code runs in an Azure Cloud Shell, and curl is used for testing.

Migration von .NET FrameworkMigrate from .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.For a reference guide to migrating ASP.NET apps to ASP.NET Core, see Migrieren von ASP.NET zu ASP.NET Core.

Herunterladen eines BeispielsHow to download a sample

Viele der Artikel und Tutorials enthalten Links zu Beispielcode.Many of the articles and tutorials include links to sample code.

  1. Laden Sie die Zip-Datei des ASP.NET Repositorys herunter.Download the ASP.NET repository zip file.
  2. Entpacken Sie die Datei Docs-master.zip.Unzip the Docs-master.zip file.
  3. Navigieren Sie mit der URL in der Beispielverknüpfung zum Beispielverzeichnis.Use the URL in the sample link to help you navigate to the sample directory.

Präprozessoranweisungen in BeispielcodePreprocessor directives in sample code

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.To demonstrate multiple scenarios, sample apps use the #define and #if-#else/#elif-#endif preprocessor directives to selectively compile and run different sections of sample code. 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.For those samples that make use of this approach, set the #define directive at the top of the C# files to define the symbol associated with the scenario that you want to run. Für einige Beispiele müssen Sie möglicherweise das Symbol in mehreren Dateien definieren, um ein Szenario durchführen zu können.Some samples require defining the symbol at the top of multiple files in order to run a scenario.

Die folgende #define-Symbolliste gibt beispielsweise an, dass vier Szenarios verfügbar sind (ein Szenario pro Symbol).For example, the following #define symbol list indicates that four scenarios are available (one scenario per symbol). Die aktuelle Beispielkonfiguration führt das TemplateCode-Szenario aus:The current sample configuration runs the TemplateCode scenario:

#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:To change the sample to run the ExpandDefault scenario, define the ExpandDefault symbol and leave the remaining symbols commented-out:

#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).For more information on using C# preprocessor directives to selectively compile sections of code, see #define (C# Reference) and #if (C# Reference).

Bereiche in BeispielcodeRegions in sample code

Einige Beispiel-Apps enthalten Codeabschnitte, die von den C#-Anweisungen #region und #endregion umschlossen werden.Some sample apps contain sections of code surrounded by #region and #endregion C# directives. Das Buildsystem der Dokumentation fügt diese Bereiche in den gerenderten Dokumentationsartikel ein.The documentation build system injects these regions into the rendered documentation topics.

Namen von Bereichen enthalten oft das Wort „snippet“ (Ausschnitt).Region names usually contain the word "snippet." Im folgenden Beispiel ist ein Bereich mit dem Namen snippet_WebHostDefaults enthalten:The following example shows a region named snippet_WebHostDefaults:

#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:The preceding C# code snippet is referenced in the topic's markdown file with the following line:

[!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).You may safely ignore (or remove) the #region and #endregion directives that surround the code. Ändern Sie jedoch den Code innerhalb dieser Anweisungen nicht, wenn Sie die im Artikel beschriebenen Beispielszenarios durchführen möchten.Don't alter the code within these directives if you plan to run the sample scenarios described in the topic. Wenn Sie andere Szenarios ausprobieren möchten, können Sie den Code anpassen.Feel free to alter the code when experimenting with other scenarios.

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

Nächste SchritteNext steps

Weitere Informationen finden Sie in den folgenden Ressourcen:For more information, see the following resources: