ASP.NET Core

Eintrag zuletzt aktualisiert am: 10.05.2021

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

Geschichte

1996 Active Server Pages (ASP)
VBScript
IIS unter Windows
COM-Komponenten

2001 Active Server Pages .NET (ASP.NET)
C#, VB.NET, Jscript.NET und andere Sprache
IIS unter Windows
.NET- und COM-Komponenten

2016 ASP.NET Core
C#, F#
IIS, Apache, nginx, Kestrel unter Windows, Linux und macOS
.NET- und COM-Komponenten (COM nur unter Windows)
Seit 2020 auch im Browser (Blazor WebAssembly)

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): Razor Component-Version
19.01.2016: Umbenennung in ASP.NET Core 1.0
16.05.2016: RC2

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