Neuigkeiten in ASP.NET Core 2.0What's new in ASP.NET Core 2.0

In diesem Artikel werden die wichtigsten Änderungen in ASP.NET Core 2.0 hervorgehoben und Links zu relevanter Dokumentation bereitgestellt.This article highlights the most significant changes in ASP.NET Core 2.0, with links to relevant documentation.

Razor Pages Pages

Razor Pages ist ein neues Feature von ASP.NET Core MVC, mit dem codierungsseitige Szenarien einfacher und produktiver werden. Pages is a new feature of ASP.NET Core MVC that makes coding page-focused scenarios easier and more productive.

Weitere Informationen finden Sie in der Einführung und im Tutorial:For more information, see the introduction and tutorial:

ASP.NET Core-MetapaketASP.NET Core metapackage

Ein neues ASP.NET Core-Metapaket umfasst alle Pakete, die von den ASP.NET Core- und Entity Framework Core-Teams erstellt und unterstützt werden, sowie deren interne Abhängigkeiten und Abhängigkeiten von Drittanbietern.A new ASP.NET Core metapackage includes all of the packages made and supported by the ASP.NET Core and Entity Framework Core teams, along with their internal and 3rd-party dependencies. Sie müssen nicht länger einzelne Microsoft ASP.NET Core-Funktionen nach Paket auswählen.You no longer need to choose individual ASP.NET Core features by package. Alle Funktionen sind im Paket Microsoft.AspNetCore.All enthalten.All features are included in the Microsoft.AspNetCore.All package. Die Standardvorlagen verwenden dieses Paket.The default templates use this package.

Weitere Informationen finden Sie unter Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 (Microsoft.AspNetCore.All-Metapaket für ASP.NET Core 2.0).For more information, see Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0.

LaufzeitspeicherRuntime Store

Anwendungen, die das Microsoft.AspNetCore.All-Metapaket verwenden, profitieren automatisch vom neuen .NET Core-Laufzeitspeicher.Applications that use the Microsoft.AspNetCore.All metapackage automatically take advantage of the new .NET Core Runtime Store. Der Speicher enthält alle Runtime-Objekte, die zum Ausführen von ASP.NET Core 2.0-Anwendungen erforderlich sind.The Store contains all the runtime assets needed to run ASP.NET Core 2.0 applications. Durch die Verwendung des Microsoft.AspNetCore.All-Metapakets werden keine Objekte von referenzierten ASP.NET Core NuGet-Paketen mit der Anwendung bereitgestellt, da sich diese bereits im Zielsystem befinden.When you use the Microsoft.AspNetCore.All metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application because they already reside on the target system. Die Objekte im Laufzeitspeicher sind ebenso zur Verbesserung der Startzeit der Anwendung vorkompiliert.The assets in the Runtime Store are also precompiled to improve application startup time.

Weitere Informationen finden Sie unter Runtime store (Laufzeitspeicher).For more information, see Runtime store

.NET-Standard 2.0.NET Standard 2.0

Die ASP.NET Core 2.0-Pakete sind auf .NET Standard 2.0 ausgelegt.The ASP.NET Core 2.0 packages target .NET Standard 2.0. Auf die Pakete kann von anderen .NET Standard 2.0-Bibliotheken verwiesen werden. Außerdem können sie unter Implementierungen von .NET ausgeführt werden, die mit .NET Standard 2.0 konform sind, darunter .NET Core 2.0 und .NET Framework 4.6.1.The packages can be referenced by other .NET Standard 2.0 libraries, and they can run on .NET Standard 2.0-compliant implementations of .NET, including .NET Core 2.0 and .NET Framework 4.6.1.

Das Microsoft.AspNetCore.All-Metapaket ist ausschließlich auf .NET Core 2.0 ausgelegt, da es dafür vorgesehen ist, mit dem .NET Core 2.0-Laufzeitspeicher verwendet zu werden.The Microsoft.AspNetCore.All metapackage targets .NET Core 2.0 only, because it's intended to be used with the .NET Core 2.0 Runtime Store.

Aktualisierung der KonfigurationConfiguration update

Standardmäßig wird in ASP.NET Core 2.0 eine IConfiguration-Instanz zum Dienstcontainer hinzugefügt.An IConfiguration instance is added to the services container by default in ASP.NET Core 2.0. Die IConfiguration-Instanz im Dienstcontainer macht es Anwendungen leichter, Konfigurationswerte aus dem Container abzurufen.IConfiguration in the services container makes it easier for applications to retrieve configuration values from the container.

Weitere Informationen zum Status der geplanten Dokumentation finden Sie unter GitHub-Problem.For information about the status of planned documentation, see the GitHub issue.

Aktualisierung der ProtokollierungLogging update

In ASP.NET Core 2.0 wird die Protokollierung standardmäßig in das System der Abhängigkeitsinjektion (dependency injection, DI) integriert.In ASP.NET Core 2.0, logging is incorporated into the dependency injection (DI) system by default. Sie können Anbieter hinzufügen und Filter in der Datei Program.cs statt in der Datei Startup.cs konfigurieren.You add providers and configure filtering in the Program.cs file instead of in the Startup.cs file. Die standardmäßige ILoggerFactory unterstützt die Filterung so, dass Sie einen flexiblen Ansatz für die anbieterübergreifende Filterung und die Filterung nach bestimmten Anbietern verwenden können.And the default ILoggerFactory supports filtering in a way that lets you use one flexible approach for both cross-provider filtering and specific-provider filtering.

Weitere Informationen finden Sie unter Introduction to Logging (Einführung in die Protokollierung).For more information, see Introduction to Logging.

Aktualisierung der AuthentifizierungAuthentication update

Ein neues Authentifizierungsmodell erleichtert das Konfigurieren der Authentifizierung für eine Anwendung mithilfe der Abhängigkeitsinjektion.A new authentication model makes it easier to configure authentication for an application using DI.

Es sind neue Vorlagen für die Konfiguration der Authentifizierung für Web-Apps und Web-APIs mithilfe von Azure AD B2C verfügbar.New templates are available for configuring authentication for web apps and web APIs using Azure AD B2C.

Weitere Informationen zum Status der geplanten Dokumentation finden Sie unter GitHub-Problem.For information about the status of planned documentation, see the GitHub issue.

Update von IdentityIdentity update

Wir haben die Erstellung sicherer Web-APIs mithilfe von Identity in ASP.NET Core 2.0 vereinfacht.We've made it easier to build secure web APIs using Identity in ASP.NET Core 2.0. Sie erhalten Zugriffstoken für den Zugriff auf Ihre Web-APIs über die Microsoft Authentication Library (MSAL).You can acquire access tokens for accessing your web APIs using the Microsoft Authentication Library (MSAL).

Weitere Informationen zu Änderungen bei der Authentifizierung in 2.0 finden Sie in den folgenden Ressourcen:For more information on authentication changes in 2.0, see the following resources:

SPA-VorlagenSPA templates

Es sind Projektvorlagen der Einzelseitenanwendung (Single Page Application, SPA) für Angular, Aurelia, Knockout.js, React.js und React.js mit Redux verfügbar.Single Page Application (SPA) project templates for Angular, Aurelia, Knockout.js, React.js, and React.js with Redux are available. Die Angular-Vorlage wurde auf Angular 4 aktualisiert.The Angular template has been updated to Angular 4. Die Vorlagen für Angular und React sind standardmäßig verfügbar. Weitere Informationen zum Abrufen der anderen Vorlagen finden Sie unter Create a new SPA project (Erstellen eines neuen SPA-Projekts).The Angular and React templates are available by default; for information about how to get the other templates, see Create a new SPA project. Unter Verwenden von JavaScript Services zum Erstellen von Single-Page-Anwendungen in ASP.NET Core finden Sie Informationen zum Erstellen einer Single-Page-Webanwendung in ASP.NET Core.For information about how to build a SPA in ASP.NET Core, see Verwenden von JavaScript Services zum Erstellen von Single-Page-Anwendungen in ASP.NET Core.

Kestrel-VerbesserungenKestrel improvements

Der Kestrel-Webserver verfügt über neue Funktionen, die ihn geeigneter als mit dem Internet verbundenen Server machen.The Kestrel web server has new features that make it more suitable as an Internet-facing server. Zu der neuen Eigenschaft Limits der KestrelServerOptions-Klasse wurden eine Reihe von Optionen für die Servereinschränkungskonfiguration hinzugefügt.A number of server constraint configuration options are added in the KestrelServerOptions class's new Limits property. Fügen Sie Grenzwerte für Folgendes hinzu:Add limits for the following:

  • Maximale Anzahl der ClientverbindungenMaximum client connections
  • Maximale Größe des AnforderungstextsMaximum request body size
  • Minimale Datenrate des AnforderungstextsMinimum request body data rate

Weitere Informationen finden Sie unter Kestrel web server implementation in ASP.NET Core (Kestrel-Webserverimplementierung in ASP.NET Core).For more information, see Kestrel web server implementation in ASP.NET Core.

Umbenennung von WebListener in HTTP.sysWebListener renamed to HTTP.sys

Die Pakete Microsoft.AspNetCore.Server.WebListener und Microsoft.Net.Http.Server wurden in einem neuen Paket zusammengeführt: Microsoft.AspNetCore.Server.HttpSys.The packages Microsoft.AspNetCore.Server.WebListener and Microsoft.Net.Http.Server have been merged into a new package Microsoft.AspNetCore.Server.HttpSys. Die Namespaces wurden entsprechend aktualisiert.The namespaces have been updated to match.

Weitere Informationen finden Sie unter HTTP.sys web server implementation in ASP.NET Core (HTTP.sys-Webserverimplementierung in ASP.NET Core).For more information, see HTTP.sys web server implementation in ASP.NET Core.

Verbesserte Unterstützung von HTTP-HeadernEnhanced HTTP header support

Wenn Sie MVC zum Übertragen von FileStreamResult oder FileContentResult verwenden, können Sie jetzt ein ETag- oder LastModified-Datum für den Inhalt festlegen, den Sie übertragen.When using MVC to transmit a FileStreamResult or a FileContentResult, you now have the option to set an ETag or a LastModified date on the content you transmit. Sie können diese Werte auf die zurückgegebenen Inhalte durch Code festlegen, ähnlich wie hier gezeigt:You can set these values on the returned content with code similar to the following:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

Die Datei, die an Ihre Besucher zurückgegeben wird, weist die entsprechenden HTTP-Header für die Werte ETag und LastModified auf.The file returned to your visitors has the appropriate HTTP headers for the ETag and LastModified values.

Wenn ein Besucher der Anwendung Inhalt mit einem Range-Anforderungsheader anfordert, erkennt ASP.NET Core diese Anforderung und verarbeitet den Header.If an application visitor requests content with a Range Request header, ASP.NET Core recognizes the request and handles the header. Wenn der angeforderte Inhalt nur teilweise geliefert werden kann, überspringt ASP.NET Core diese Teile entsprechend und gibt nur den angeforderte Bytesatz zurück.If the requested content can be partially delivered, ASP.NET Core appropriately skips and returns just the requested set of bytes. Sie müssen keine bestimmten Handler in Ihren Methoden schreiben, um dieses Feature anzupassen oder zu verarbeiten, da dies automatisch für Sie erledigt wird.You don't need to write any special handlers into your methods to adapt or handle this feature; it's automatically handled for you.

Hosting – Start und Application InsightsHosting startup and Application Insights

Hostingumgebungen können nun während des Starts der Anwendung zusätzliche Paketabhängigkeiten injizieren und Code ausführen. Die Anwendung muss nicht explizit eine Abhängigkeit übernehmen oder Methoden aufrufen.Hosting environments can now inject extra package dependencies and execute code during application startup, without the application needing to explicitly take a dependency or call any methods. Mit dieser Funktion kann bestimmten Umgebungen ermöglicht werden, Funktionen zu „starten“, die für diese Umgebung spezifisch sind, ohne dass die Anwendung vorher informiert sein muss.This feature can be used to enable certain environments to "light-up" features unique to that environment without the application needing to know ahead of time.

In ASP.NET Core 2.0 wird diese Funktion verwendet, um automatisch die Application Insights-Diagnose beim Debuggen in Visual Studio oder (nach der Anmeldung) bei der Ausführung in Azure App Services zu aktivieren.In ASP.NET Core 2.0, this feature is used to automatically enable Application Insights diagnostics when debugging in Visual Studio and (after opting in) when running in Azure App Services. Aus diesem Grund fügen die Projektvorlagen nicht mehr standardmäßig Application Insights-Pakete und Code hinzu.As a result, the project templates no longer add Application Insights packages and code by default.

Weitere Informationen zum Status der geplanten Dokumentation finden Sie unter GitHub-Problem.For information about the status of planned documentation, see the GitHub issue.

Automatische Verwendung von FälschungssicherheitstokenAutomatic use of anti-forgery tokens

ASP.NET Core diente standardmäßig bei der HTML-Codierung von Inhalten immer als Unterstützung. Mit der neuen Version wird jedoch ein weiterer Schritt gemacht, um websiteübergreifende Anforderungsfälschungen (XSRF) zu verhindern.ASP.NET Core has always helped HTML-encode content by default, but with the new version an extra step is taken to help prevent cross-site request forgery (XSRF) attacks. ASP.NET Core gibt nun standardmäßig Fälschungssicherheitstoken aus und validiert diese ohne zusätzliche Konfiguration auf POST-Aktionsformularen und -Seiten.ASP.NET Core will now emit anti-forgery tokens by default and validate them on form POST actions and pages without extra configuration.

Weitere Informationen finden Sie unter Preventing Cross-Site Request Forgery (XSRF/CSRF) attacks (Verhindern von websiteübergreifenden Anforderungsfälschungen (XSRF/CSRF)).For more information, see Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks.

Automatisches VorkompilierenAutomatic precompilation

Die Razor-Ansichtenvorkompilierung ist standardmäßig während der Veröffentlichung aktiviert. Hierdurch wird die Größe der Ausgabe reduziert und die Startzeit der Anwendung verringert.Razor view pre-compilation is enabled during publish by default, reducing the publish output size and application startup time.

Weitere Informationen finden Sie unter Kompilierung und Vorkompilierung einer Razor-Ansicht in ASP.NET Core.For more information, see Razor view compilation and precompilation in ASP.NET Core.

Razor-Unterstützung für C# 7.1 support for C# 7.1

Die Razor-Ansichts-Engine wurde aktualisiert, damit sie mit dem neuen Roslyn-Compiler funktioniert.The Razor view engine has been updated to work with the new Roslyn compiler. Dies umfasst Unterstützung für C# 7.1-Funktionen wie Standardausdrücke, abgeleitete Tupelnamen und Mustervergleich mit Generics.That includes support for C# 7.1 features like Default Expressions, Inferred Tuple Names, and Pattern-Matching with Generics. Fügen Sie Ihrer Projektdatei die folgende Eigenschaft hinzu, um C# 7.1 in Ihrem Projekt zu verwenden, und laden Sie die Projektmappe dann erneut:To use C# 7.1 in your project, add the following property in your project file and then reload the solution:

<LangVersion>latest</LangVersion>

Informationen zum Status der C# 7.1-Funktionen finden Sie im Roslyn GitHub-Repository.For information about the status of C# 7.1 features, see the Roslyn GitHub repository.

Andere Aktualisierungen der Dokumentation für 2.0Other documentation updates for 2.0

MigrationsanleitungMigration guidance

Anleitungen zum Migrieren von ASP.NET Core 1.x-Anwendungen zu ASP.NET Core 2.0 finden Sie in den folgenden Ressourcen:For guidance on how to migrate ASP.NET Core 1.x applications to ASP.NET Core 2.0, see the following resources:

Zusätzliche InformationenAdditional Information

Die vollständige Liste aller Änderungen finden Sie unter ASP.NET Core 2.0 Release Notes (ASP.NET Core 2.0 – Anmerkungen zu dieser Version).For the complete list of changes, see the ASP.NET Core 2.0 Release Notes.

Wenn Sie über den Fortschritt und die Pläne des ASP.NET Core-Entwicklungsteams auf dem Laufenden bleiben möchten, sehen Sie sich das wöchentliche ASP.NET Community Standup an.To connect with the ASP.NET Core development team's progress and plans, tune in to the ASP.NET Community Standup.