Active Server Pages .NET (ASP.NET)

Eintrag zuletzt aktualisiert am: 10.05.2021

Active Server Pages .NET (meist nur kurz als "ASP.NET" bezeichnet) ist ein serverseitiges Webframework im Rahmen von .NET.

Während es zu Beginn nur ASP.NET Webforms und ASP.NET Webservices gab, existieren mittlerweise verschiedene Techniken unter dem Oberbegriff ASP.NET. Seit dem Jahr 2016 gibt es mit ASP.NET Core auch eine Neuimplementierung im Rahmen der .NET Core-Strategie. ASP.NET Core läuft nicht nur auf Windows mit Internet Information Services (IIS), sondern auch auf Linux und macOS mit Webservern wie Apache und nginx.

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)

ASP.NET-Oberflächentechniken

ASP.NET ist eine ganze Familie von Webframeworks. Fünf Familiemitglieder dienen der Erstellung von Webanwendungen mit Benutzerschnittstelle:
1. ASP.NET-Webforms ist das ursprüngliche auf Basis von Webserversteuerelementen, die HTML, CSS und JavaScript generieren. JavaScript kommt hierbei nur in geringen Dosen zum Einsatz. Mit dem sogenannten ViewState kann ein Seitenzustand zwischen zwei HTTP-Anfragen gehalten werden. Der Entwickler hat bei Verwendung der Webserversteuerelemente nur begrenzten Einfluss auf die HTML-Ausgabe. Vorteil des Modells ist aber die hohe Produktivität.
2. ASP.NET AJAX, eine Erweiterung zu Webforms, dient der Ausweitung der Möglichkeiten zur clientseitigen Ausführung im Browser mit JavaScript. Dazu bietet ASP.NET AJAX einige Steuerelemente, die mit viel JavaScript im Browser laufen.
3. ASP.NET Dynamic Data Websites sind ein metadatengetriebener Ansatz zum Erzeugen von Weboberflächen zur Datenansicht und Dateneingabe, vergleichbar mit Ruby-on-Rails. ASP.NET Dynamic Data wurde mit .NET 3.5 Service Pack 1 eingeführt und in .NET 4.0 erweitert.
4. ASP.NET Model View Controller (MVC) ist seit dem Jahr 2009 das wichtigste Archotekturmodell. Der Controller auf dem Server füttert den MVC-View mit Daten. Der View erzeugt aus einer Template-Syntax mit einer wählbaren View Engine (Microsoft liefert ASPX-Syntax <span><%=x%></span> und die Razor-Syntax <span>@x</span>) eine HTML-Seite, die als Ganzes zum Webbrowser übertragen wird. Der Browser schickt Daten per URL oder HTTP-Request-Body zurück an den Server, der dann eine neue, ganze Seite rendert und diese wieder zum Client sendet. Der Client tauscht die Seite aus, der Benutzer nimmt ein Flackern war. JavaScript zur Ausführung im Browser ist optional einstreubar in vom Webserver gerenderten HTML-Dokumenten. ASP.NET MVC bietet eine starke Kompetenztrennung in der Benutzerschnittstelle, eine gute Kontrolle über die HTML-Ausgabe, eine gute Integrierbarkeit von JavaScript sowie gute Testbarkeit. MVC ist aber weniger produktiv als das Webforms-Modell, weil es hier keine Abstraktion durch Webserversteuerelemente und ViewState gibt.
5. ASP.NET Webpages basieren auch auf der Razor-Syntax, verflechten aber Programmcode und HTML/CSS in einer Datei (.cshtml). Es gibt einen zugehörigen Editor "Webmatrix". ASP.NET Webpages und Webmatrix richten sich eher an Gelegenheits- und Hobby-Entwickler. Microsoft zielte mit dieser Variante auf Entwickler, die PHP mögen. In Deutschland hatte dieses Architekturmodell nur geringe Bedeutung.

ASP.NET-Webservicestechniken

1. SOAP-basierte Webservices kann man in ASP.NET seit der Version 1.0 mit "ASP.NET Webservices" (alias: ASMX) erstellen. Das Architekturmodell gilt jedoch als veraltert, seit .NET Framework 3.0 im Jahr 2006 die Windows Communication Foundation (WCF) eingeführt wurde.
2. REST-basierte Webservices erlaubt ASP.NET WebAPI, dass es seit dem Jahr 2012 gibt.

Verbreitung

ASP.NET Webforms ist nach PHP weiterhin die weltweit am häufigsten angesetzte Webservertechnik – sowohl in hochfrequentierten Websites ("Top 10.000 Sites") als auch bei kleineres Websites ("Top Million Sites"), vgl. Statistiken von "BuildWith" (http://trends.builtwith.com). ASP.NET MVC, ASP.NET Dynamic Data und ASP.NET Webpages führen ein Nischendasein.

Nicht-visuelle ASP.NET-Techniken

Außerdem gibt es noch vier Techniken in ASP.NET, die nicht oder nicht ausschließlich der Oberflächenprogrammierung dienen:
1. ASP.NET-Webservices (auch bekannt als ASMX) zur Erstellung von XML-Webservices (HTTP-Handler für SOAP). Diese Technik gilt als veraltert. Seit .NET 3.0 ist der Nachfolger die Windows Communication Foundation (WCF)
2. ASP.NET Web API ist eine neue Technik in .NET 4.5 zur Erstellung REST-basierter Webservices. Sie lässt wiederum einen Teil der WCF ab.
3. ASP.NET-HTTP-Handler sind eine Basistechnik in ASP.NET. Ein Handler nimmt eine HTTP-Anfrage entgegen und liefert eine beliebige Antwort. Sie kann auch einen zu visualisierenden Inhalt haben, z.B. eine Ad-hoc auf dem Server erzeugte Grafik liefern. Man kann eigene ASP.NET-HTTP-Handler als .ashx-Dateien implementieren. HTTP-Handler sind mit ISAPI-Erweiterungen im IIS vergleichbar, die einen bestimmten Dateityp bedienen.
4. Ein ASP.NET-HTTP-Module sind eine weitere Basistechnik in ASP.NET. HTTP-Module sind mit ISAPI-Filtern vergleichbare Erweiterungen für HTTP-Module. Ein oder mehrere ASP.NET-HTTP-Module können vor die Verarbeitung durch einen Handler geschaltet werden und Verarbeitungsschritte (z.B. Authentifizierung) ausführen.