Wissen von A bis Z

ASP.NET Core

ASP.NET Core ist wie der coole, schlanke Bruder des alten ASP.NET, der plötzlich Skateboard fährt (Linux) und überall mitmischt (Cloud).

ASP.NET Core ist das plattformübergreifende, modulare Web-Framework der .NET-Plattform und der Nachfolger des klassischen, IIS-gebundenen ASP.NET. Es läuft auf Windows, Linux und macOS, ist auf GitHub unter der MIT-Lizenz quelloffen und wird gemeinsam mit der .NET-Runtime von Microsoft und der .NET Foundation gepflegt. Im Kern besteht es aus dem Webserver Kestrel, einer Middleware-Pipeline, einem leichtgewichtigen Dependency-Injection-Container und mehreren spezialisierten Frameworks wie MVC, Razor Pages, Blazor und SignalR.

Eingesetzt wird ASP.NET Core für klassische Webanwendungen, REST- und gRPC-APIs, Microservices, Realtime-Workloads über SignalR-WebSockets, serverseitiges Rendering mit Razor Pages oder Blazor Server sowie clientseitiges WebAssembly mit Blazor WebAssembly. Häufige Einsatzumgebungen sind Container und Kubernetes, Azure App Service, Azure Container Apps, AWS Elastic Beanstalk sowie selbst gehostete Linux-Server.

Der Einsatzzweck und das gelöste Problem ergeben sich aus den Engpässen des klassischen ASP.NET: Die enge Bindung an IIS und Windows, die schwergewichtige System.Web-Pipeline und der vergleichsweise hohe Speicher- und CPU-Footprint waren in Container- und Cloud-Szenarien limitierend. ASP.NET Core ersetzt diese Architektur durch eine konfigurierbare Middleware-Pipeline, eingebettete Web-Server (Kestrel optional hinter IIS, Nginx oder einem Reverse Proxy), eingebaute Konfigurations- und Logging-Abstraktionen sowie native Unterstützung für moderne Standards wie HTTP/2, HTTP/3, gRPC, OpenAPI und JSON Web Tokens.

Historisch wurde ASP.NET Core unter dem Codenamen ‚Project K' bzw. ‚ASP.NET vNext' ab 2014 entwickelt und 2016 zusammen mit .NET Core 1.0 freigegeben. Spätere Meilensteine sind ASP.NET Core 2.x (Razor Pages, breitere API-Reife), 3.x (gRPC, Worker Services, Blazor Server), die Vereinheitlichung mit .NET 5/6 (Minimal APIs in 6, Blazor WebAssembly produktiv), .NET 7/8 mit Output Caching, Rate Limiting und .NET 8 mit Blazor United, das Server-, WebAssembly- und Streaming-Rendering kombiniert.

Eingeführt wurde ASP.NET Core von Microsoft, vorangetrieben unter anderem von Damian Edwards, David Fowler, Stephen Halter und Glenn Condron. Die Entscheidung, mit Kestrel einen eigenen, plattformübergreifenden Webserver zu bauen, fiel nicht zuletzt deshalb, weil das Team mit dem TechEmpower-Benchmark zeigen wollte, dass managed .NET-Code performance-mäßig in einer Liga mit C/C++-Servern wie nginx oder Go-basierten Servern spielen kann — ein Ziel, das mit den späteren Releases tatsächlich erreicht wurde und ASP.NET Core dauerhaft in den oberen Rängen dieses Benchmarks etabliert hat.

Zurück