ASP
Kurz: Microsofts Technologie für serverseitige Webanwendungen — die aktuelle Version, ASP.NET Core, läuft plattformübergreifend (Windows, Linux, macOS) mit C#.
Genauer: Das ursprüngliche “Classic ASP” (1996) war Windows-exklusiv und lief nur mit VBScript/JScript. Der Nachfolger ASP.NET (und dessen moderner, quelloffener Nachfolger ASP.NET Core) ist deutlich leistungsfähiger, plattformunabhängig und wird primär mit C# entwickelt.
Im Detail
Von Classic ASP zu ASP.NET Core
Das ursprüngliche “Classic ASP” (1996) war Windows-exklusiv, lief nur im Internet Information Services (IIS) Webserver und wurde mit VBScript oder JScript geschrieben — technisch simpler eingebetteter Code in HTML-Seiten, ähnlich frühem PHP. ASP.NET (2002) ersetzte das durch ein vollwertiges, objektorientiertes Framework auf Basis von .NET, blieb aber weiterhin eng an Windows und IIS gebunden.
ASP.NET Core (seit 2016) war dann ein kompletter Neubau des Frameworks als quelloffenes, plattformübergreifendes Projekt — ein deutlicher Bruch mit dem alten .NET Framework. Diese Neuentwicklung fiel zeitlich mit Microsofts breiterer strategischer Öffnung gegenüber Open Source und Linux zusammen (unter CEO Satya Nadella ab 2014), nachdem das Unternehmen unter früherer Führung Linux teils offen bekämpft hatte.
Programmiermodelle
ASP.NET Core bietet verschiedene Programmiermodelle für unterschiedliche Anwendungsfälle:
- MVC (Model-View-Controller): für klassische Webanwendungen mit serverseitig gerenderten Seiten (Razor-Views, HTML-Templates mit eingebettetem C#).
- Web API: für reine REST-Schnittstellen ohne HTML-Rendering, meist als Backend für ein separates Frontend (React, Angular, mobile App).
- Blazor: interaktive Frontend-Logik komplett in C# statt JavaScript, entweder serverseitig gerendert (Blazor Server) oder zu WebAssembly kompiliert und im Browser ausgeführt (Blazor WebAssembly) — für Teams, die ungern zwei Sprachen (C# Backend + JavaScript Frontend) pflegen wollen.
- Minimal APIs: seit .NET 6 eine schlanke Syntax für einfache Endpunkte ohne viel Boilerplate-Code.
Eine minimale ASP.NET-Core-API sieht z. B. so aus:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/hallo", () => "Hallo Welt!");
app.MapGet("/produkte/{id}", (int id) => $"Produkt {id}");
app.Run();Performance und Einsatzgebiete
ASP.NET Core gilt in unabhängigen Benchmarks (z. B. TechEmpower) regelmäßig als eines der performantesten Web-Frameworks überhaupt, deutlich vor vielen dynamischen Sprachen wie Python/Ruby und oft auch vor Node.js — ein Ergebnis der ausgereiften .NET-Laufzeitumgebung und des kompilierten, statisch typisierten Codes. Im Vergleich zu Backends auf Basis von Node.js punktet ASP.NET Core vor allem bei sehr performancekritischen Unternehmensanwendungen und in Umgebungen, die bereits stark auf das Microsoft-Ökosystem setzen (Windows-Server, Active Directory für Authentifizierung, Azure als Cloud-Anbieter) — die Integration in diese Systeme ist deutlich reibungsloser als bei Fremdsprachen-Stacks.
Entity Framework als ORM
ASP.NET-Anwendungen greifen meist über Entity Framework Core auf Datenbanken zu — ein objektrelationaler Mapper (ORM), der Datenbanktabellen als C#-Klassen abbildet, konzeptionell vergleichbar mit Drizzle ORM im Node.js-Ökosystem, aber tiefer in .NET integriert (z. B. durch LINQ, eine in die Sprache eingebaute Abfragesyntax, die sich auf Datenbanken, In-Memory-Collections und XML gleichermaßen anwenden lässt).