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 A
SPX-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.
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.