ASP.NET Core 2.0 ist am 14.8.2017 erschienen.

Auch für sein Webentwicklungsframework ASP.NET Core hat Microsoft die Version 2.0 fertiggestellt. Anders als in der ersten Preview-Version angekündigt, [https://www.heise.de/developer/meldung/Microsoft-will-ASP-NET-Core-nicht-mehr-auf-dem-klassischen-NET-anbieten-3708715.html] läuft ASP.NET Core 2.0 nun doch nicht nur auf .NET Core 2.0, sondern weiterhin auch auf dem klassischen .NET Framework (ab Version 4.6.1). ASP.NET Core 2.0 basiert auf .NET Standard 2.0 und läuft daher nicht auf älteren .NET Framework-Versionen.

Ab ASP.NET Core 2.0 bietet Microsoft mit Microsoft.AspNetCore [https://www.nuget.org/packages/Microsoft.AspNetCore.all] ein Nuget-Paket an, dass als Meta-Paket alle von Microsoft für ASP.NET Core erstellten Nuget-Pakete nach sich zieht einschließlich Entity Framework Core 2.0. Auf den ersten Blick widerspricht dies der von Microsoft mit .NET Core propagierten Strategie der minimalen Referenzierung von .NET-Klassen. Auf den zweiten Blick sorgen jedoch die Deployment-Tools von .NET Core dafür, dass am Ende nur die tatsächlich benötigten Pakete übrigbleiben. Microsoft dokumentiert den Umstellungsprozess von ASP.NET Core 1.x-Anwendungen auf Version 2.0 unter [https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/].

ASP.NET Core bietet neben Performanceverbesserungen nun auch eine Unterstützung für die C#-7.1-Syntax in Views sowie als "Razor Pages" bezeichneten Views, die ganz ohne Controller auskommen. ASP.NET Core 2.0-Views können nun vorkompiliert werden – Microsoft hatte das in den Beta-Varianten für Version 1.0 bereits integriert, dann aber wieder ausgebaut. Den Startup-Programmcode von ASP.NET hat Microsoft in Version 2.0 mit Einführung der Methode WebHost.CreateDefaultBuilder() stark vereinfacht.

Visual Studio 2017 bietet nun beim Anlegen neuer ASP.NET Core-Webprojekte eine Auswahl zwischen .NET Core 1.0, 1.1 und 2.0 sowie neue Projektvorlagen, die neben Server-Programmcode auch direkt Client-Code mit Angular (derzeit auf Stand 4.1.2) oder React.js (derzeit Version 15.5.0) enthalten. Die neuen Vorlagen sind auch über das Kommandozeilenwerkzeug dotnet new verfügbar.

@page
@functions {
public string FormatDate(DateTime theTime) {
return theTime.ToString("d");
}
}
<html>
<body>
<h2>Uhrzeit auf dem Server:</h2>
<p>@FormatDate(DateTime.Now)</p>
</body>
</html>
Listing 1: Beispiel für eine Razor-Seite mit eingestreutem C#-Code in ASP.NET Core 2.0

Weitere Informationen finden Sie in diesen Beiträgen:

ASP.NET Core Razor Pages
Microsoft BUILD-Konferenz 2017