ASP.NET Core

Eintrag zuletzt aktualisiert am: 10.02.2020


ASP.NET Core (bis 21.1.2016: ASP.NET 5.0, Codename ASP.NET vNext und Project K) ist der Nachfolger von ASP.NET Webforms 4.5.x, ASP.NET MVC 5, ASP.NET WebPages 3, ASP.NET SignalR 2 und ASP.NET Web API 5. Zwischen Mai 2014 und November 2014 verwendete Microsoft den Codenamen "ASP.NET vNext", der aber auch schon in der Vergangenheit für frühere ASP.NET-Versionen verwendet wurde. Microsoft entwickelt ASP.NET Core komplett als Open Source-Projekt mit Beteiligung externer Entwickler.

ASP.NET Core umfasst folgenden Anwendungsarten

Ressourcen
Quellcode: https://github.com/dotnet/aspnetcore
Dokumentation: https://docs.microsoft.com/de-de/aspnet/core

Geschichte
13.5.2014 (TechEd USA): Erste öffentliche Erwähnung, noch unter dem Namen "ASP.NET vnext"
12.11.2014 (connect 2015): Benennung "ASP.NET 5"
18.11.2015 (connect 2014): RC-Version
19.01.2016: Umbenennung in ASP.NET Core 1.0
16.05.2016: RC2
  • ASP.NET Core 1.0 ist erschienen am 26.07.2016
  • ASP.NET Core 1.1 ist erschienen am 16.11.2016
  • ASP.NET Core 1.1.1 ist erschienen am 07.03.2017
  • ASP.NET Core 2.0 ist erschienen am 14.08.2017
  • ASP.NET Core 2.1 ist erschienen am 31.05.2018
  • ASP.NET Core 2.2 ist erschienen am 04.12.2018
  • ASP.NET Core 3.0 ist erschienen am 23.09.2019
  • ASP.NET Core 3.1 ist erschienen am 03.12.2019
  • ASP.NET Core 5.0 ist erschienen am 10.11.2020
  • ASP.NET Core 6.0 wird erscheinen im Jahr 2021


Anwendungsmodelle
Das klassischen ASP.NET war immer schon ein Oberbegriff über zahlreiche Anwendungsmodelle: Webforms, Dynamic Data, Model View Controller (MVC), Web API und Web Pages – mit verschiedenen Vor- und Nachteilen.

Auch in ASP.NET Core gibt es mehrere Anwendungsmodelle:
POCO-Controller
 Model View Controller (MVC)-Framework
Razor Pages
 Web API (ein Sonderfall des Model View Controller Framework)
 SignalR
Blazor Server

Während MVC und Razor Pages zum Server Side Rendering gehören, dienen WebAPI und SignalR dem Client Side Rendering. POCO-Controller können für beides verwendet werden. Blazor Server läuft zwar auf dem Webserver, da aber alle HTML-DOM-Änderungen einzeln per SignalR zum Client übretragen werden, hat der Benutzer das Erlebnis einer Single-Page-Web-App (SPA).

Ziele für ASP.NET Core
Komplette Reimplementierung
Schlank, komponentenbasiert/modular
  • Nur benötigte Features
  • Weniger Angriffsfläche

Agileres Vorgehen
  • Schnellere / kleinere Releases
  • Updates einzelner Komponenten

Nuget-Pakete (nupkg):
Konfigurationsdateien: JSON statt XML
Dependency injection *everywhere*
Keine Abhängigkeit von System.Web
.NET Framework wird pro Ordner installiert (Xcopy-Deployment)
  • Laufzeitumgebung "Side by side"
  • Jeder kann .NET installieren, in beliebigen Versionen (kein Warten auf Rollout mehr!)
  • Systemweiter Cache für Nuget-Pakete
  • Automatische "ngen" (Name: CrossGen)

Schnellerer Anwendungstart: Kompilieren direkt in RAM
Ad-Hoc-Kompilieren dank Roslyn
Wenig RAM-Bedarf  nur benötigte Komponenten
Höhere Dichte von Anwendungen auf Server (vgl. Cloud)
Einfaches Self-Hosting (oder im IIS)
Cross-Platform: Windows, Mono/Xamarin
Alles Open Source

Neues Features für ASP.NET Core