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