Sie sind hier: Wissen
Begriff ASP.NET Webforms
Abkürzung ASP.NET
Eintrag zuletzt aktualisiert am 07.07.2012

 Zur Stichwortliste unseres Lexikons

Was ist ASP.NET Webforms ?

ASP.NET ist eine Middleware zur Webserver-Programmierung, insbesondere der Entwicklung von Web-Oberflächen ("Webforms") und Diensten ("Webservices"). ASP.NET ist der Nachfolger von der Active Server Pages (ASP) und Teil des Microsoft .NET Framework seit Version 1.0.

ASP.NET ist seit dem .NET Framework 1.0 eines der Stärken von .NET. "ASP" steht für Active Server Pages und drückt aus, dass es sich (primär) um ein serverseitiges Framework für Webanwendungen handelt, d.h. der in einer .NET-Sprache geschriebene Programmcode wird auf dem Webserver und nicht im Webbrowser ausgeführt. Allerdings war ASP.NET von Anfang an nicht rein serverseitig, denn einige Funktionen (z.B. Eingabeprüfungen und Hyperlinks, die sich verhalten wie Schaltflächen) erforderten die Ausführung von JavaScript im Browser. Entscheidet ist aber, dass das .NET Framework nur auf dem Server installiert sein muss. Als Client wird nur ein Webbrowser benötigt, der HTML, CSS und JavaScript versteht. Bei deaktiviertem Javascript können einige ASP.NET-Funktionen nicht korrekt funktionieren, aber im Kern kann man ASP.NET auch ohne JavaScript verwenden. Hinsichtlich der Browser-Kompatibilität hat sich ASP.NET in den letzten Jahren gebessert: Die meisten Funktionen sind inzwischen auch kompatibel zu anderen Browsern.

ASP.NET bietet eine signifikante Abstraktion von den Eigenarten der Webprogrammierung. Entwickler arbeiten mit Steuerelementen, wie sie dies aus der Entwicklung von Desktop-Anwendungen kennen. Diese Steuerelemente, die sich "Webserversteuerelemente" nennen, erzeugen dann zur Ausführungszeit auf dem Webserver HTML, CSS und JavaScript (oder eine beliebige andere Markup-Sprache), die der Webserver zum Browser sendet. In versteckten Feldern wird die Webseite automatisch durch Zustandsinformationen angereichert, die die Zustandslosigkeit von HTTP aus der Sicht des Entwicklers zum Teil transparent macht.

Funktionen

ASP.NET zeichnet sich durch folgende Funktionen aus:
  • ASP.NET ist eine Technologie zur Entwicklung von Webanwendungen.
  • ASP.NET war zu Beginn ein primär serverseitiges Programmiermodell, das .NET-Code auf dem Webserver ausführt. Inzwischen (im Zuge des AJAX-Euphorie) gibt es auch viele clientseitigen Funk-tionen. Auf dem Client wird JavaScript (ECMA-Script) im Client (Webbrowser) ausgeführt
  • Es erfolgt eine Abstraktion des Ausgabeformats durch eigene Tags (alias "Serversteuerelemente"). Diese eigenes Tags werden aber nur serverseitige verwendet.
  • Die an den Client gesendete Ausgabe ist nicht browserabhängig, da nur Standardausgabeformate und
-sprachen (HTML, WML, cHTML, CSS, JavaScript) zum Einsatz kommen. Allerdings kommen einige Unterschiede in der Interpretation von diesem Standard auch bei ASP.NET zum Tragen (vgl. Unter-schiede zwischen Internet Explorer und Firefox).
  • Die Umsetzung der Steuerelemente in die vom Browser verwertbare Seitenbeschreibungssprache erfolgt browserspezifisch (Adaptive Rendering).
  • Serversteuerelemente sind in Form von .NET-Softwarekomponenten implementiert.
  • Zahlreiche Steuerelemente sind verfügbar (als Teil des .NET Framework und auf dem Komponenten-markt, teilweise auch Freeware/Open Source).
  • Clientseitig wird kein ActiveX/COM, .NET oder eine andere Komponententechnologie verwendet, die eine spezielle Laufzeitumgebung auf dem Client erfordert. Es kommt nur JavaScript als Programmier-sprache zum Einsatz,
  • ASP.NET enthält eine integrierte Zustandsverwaltung (auf Basis von versteckten Feldern, Cookies und URL-Rewriting).
  • ASP.NET bietet einige vorgefertigte Lösungsbausteine ("Dienste"), z.B. für Benutzer- und Rollenver-waltung, Authentifizierung sowie Profildatenspeicherung.
  • ASP.NET unterstützt die Zwischenspeicherung (Caching) sowohl Daten, als auch Webseiten und Teile von Webseiten.
  • Webanwendungen verwenden ein XML-basiertes, hierarchisches Konfigurationsmodell.
  • Der im Rahmen von ASP.NET serverseitig zu implementierende Programmcode ist objektorientiert und ereignisgetrieben (vergleichbar mit DHTML und Windows Forms-Programmierung). Viele klassische Programmieraufgaben (z.B. Datenzugriff) können in ASP.NET deklarativ durch XML-Tags (Server-steuerelemente) gelöst werden.
  • Verschiedene (aber nicht alle .NET-Programmiersprachen) können zum Einsatz kommen. Die wichtigs-ten sind C# und Visual Basic.
  • ASP.NET ist kein Scripting, sondern nutzt Kompilierung. Webseiten werden spätestens beim ersten Aufruf kompiliert. Durch ein Schattenkopiemodell können Teile der Webanwendung im Laufenden Be-trieb aktualisiert werden.
  • Durch die Trennung von Gestaltung und Code (Code-Behind-Konzept) können Grafiker und Entwick-ler gleichzeitig an einer Seite arbeiten.
  • Es gibt eine gute Werkzeugunterstützung (sowohl kommerziell und nichtkommerziell, von Microsoft als auch von Drittanbietern).
  • Als Webserver können nicht nur der Microsoft Internet Information Server (IIS), sondern auch Apache und andere Webserver zum Einsatz kommen.
  • Als Entwicklungsumgebung stellt Microsoft den so genannten Visual Web Developer (VWD) zur Verfügung. VWD ist als eigenständiges Produkt (Visual Web Developer Express) oder als Teil von
Visual Studio 2008 erhältlich.
  • Die Serversteuerelemente sind erweiterbar und kombinierbar.
  • Die ASP.NET-Infrastruktur ist durch HTTP-Module, HTTP-Handler, Provider und Klassenableitungen erweiterbar.
  • Zahlreiche erweiterbare Lösungen ("Site Frameworks") auf Basis von ASP.NET sind verfügbar, zum Teil auch als Open Source.
  • Durch eingebaute Funktionen kann eine Anwendung überwacht werden (Laufzeitüberwachungssystem).

Versionsgeschichte für ASP.NET:

  • Erste öffentliche Alpha-Version: Juli 2000
  • Version 1.0 Final: Januar 2002
  • Version 1.1 Final: April 2003
  • Version 2.0 Alpha: Juni 2003
  • Version 2.0 Beta 1: Juni 2004
  • Version 2.0 Beta 2: April 2005
  • Version 2.0 Final: November 2005
  • Version 3.5: geplanNovember 2007 (Version 3.0 gab es nicht!)
  • Version 4.0: zu erwarten für 2009/2010
Microsoft verwendet intern und auch in öffentlichen Dokumenten Codenamen anstelle der Versionsnummern:

Ablauf beim Einsatz von ASP.NET

  • Der Browser stellt eine HTTP-Anfrage an einen ASP.NET-fähigen Webserver für eine Datei mit der Dateiextension .aspx.
  • Der Webserver ruft das ASP.NET Page Framework auf und übergibt ihr die .aspx-Datei, die auf dem Server gespeichert ist.
  • Die .aspx-Datei enthält HTML, XML sowie .NET-Programmcode.
  • Die .aspx-Datei wird kompiliert, sofern sie nicht schon zuvor kompiliert wurde.
  • Die kompilierte Datei wird ausgeführt. Die Ausführung er-zeugt – in Abhängigkeit von dem Browser, der die Anfrage ge-stellt hat – eine Ausgabe, die aus HTML (oder cHTML, WML) und ggf. JavaScript besteht sowie Zustandsdaten be-steht.
  • Der Browser zeigt die Seite an und führt ggf. die JavaScript-Routinen aus.
  • Aktionen des Benutzers auf der Seite können zu neuen HTTP-Anfragen führen.

ASP.NET-fähige Webserver

ASP.NET kann in folgenden Webservern betrieben werden: Der Apache Webserver benötigt ein Zusatzmodul, um ASP.NET zu unterstützen. Es gibt dafür drei Optionen:
  • mod_mono (Mono-Projekt):
http://www.go-mono.com/asp-net.html
- Mit Cassini im Hintergrund: http://www.codeproject.com/aspnet/cassiniapache101.asp
- mod_asp.net (Covalent, kommerziell, ab 1500$): http://www.covalent.com

Entwicklungsumgebungen für ASP.NET

Folgende Entwicklungsumgebungen bieten eine Unterstützung für ASP.NET:
  • Microsoft Visual Studio .NET 2002
  • Microsoft Visual Studio .NET 2003
  • Microsoft Visual Studio 2005
  • Microsoft Visual Studio 2008
  • Microsoft Webmatrix
  • Microsoft Visual Web Developer Express 2005
  • Microsoft Visual Web Developer Express 2008
  • Macromedia Dreamweaver 8.0
  • Borland Delphi 2005

Unterschiede zwischen ASP und ASP.NET:

Active Server Pages (ASP) ist die Vorgängertechnologie, die in den Jahren 1996 bis 2002 die primäre Lösung von Microsoft zur Ent-wicklung von Webanwendungen war.
Die wichtigsten Unterschiede zwischen ASP und ASP.NET sind:
1. ASP.NET ist nicht mehr auf Active Scripting-Sprachen be-schränkt, sondern jede .NET-fähige Sprache kann verwendet werden, um ASP.NET-Seiten zu schreiben (z.B. C#, Visual Basic .NET und Jscript .NET). Damit können auch Sprachen zum Einsatz kommen, die eine bessere Objektorientierung und eine strenge Typisierung bieten.
2. Der Code in ASP.NET-Seiten wird nicht interpretiert, sondern beim ersten Aufruf in die Microsoft Intermediate Language (MSIL) kompiliert. Der MSIL-Code wird dann bei der Ausfüh-rung vom Just-in-Time-Compiler in die jeweilige plattformspezi-fische Sprache verwandelt.
3. ASP.NET ist viel schneller als das klassische ASP (aufgrund der Kompilierung).
4. Pro ASPX-Seite kann nur noch eine Programmiersprache verwendet werden. Dies kann umgangen werden durch die Er-stellung benutzerdefinierter Web-Steuerelemente.
5. Layout (HTML-Code) und Programmcode können in zwei verschiedene Dateien aufgeteilt werden, wie dies in anderen Umgebungen (z.B. Visual Basic 6.0, VBA) auch möglich war. Dies nennt man Code-Behind-Modell.
6. ASP.NET besitzt ein objektorientiertes, ereignisbasiertes Pro-grammiermodell, das die Entwicklung von Webanwendungen der Entwicklung von Windows32-Anwendungen mit Visual Basic 6.0 sehr ähnlich macht. Dieses Programmiermodell wird reali-siert auf Basis mächtiger serverseitiger Steuerelement-Objekte, die zur Laufzeit auf dem Server in die Hypertext Markup Langu-age (HTML) umgesetzt werden. Zu den Steuerelement-Objekten gibt es Ereignisse, die auf dem Server behandelt werden.
7. Ein Seitenübergang von einer zur nächsten Webseite erfolgt in ASP.NET so, dass zunächst die aktuelle Seite erneut aufgerufen wird, damit die dort hinterlegten Ereignisbehandlungsroutinen ausgeführt werden können. Erst nachdem diese abgearbeitet wurden, erfolgt (wahlweise serverseitig oder durch einen client-seitigen Redirect) der Aufruf der nächsten Seite. Dies nennt man Postback-Architektur.
8. Einige der serverseitigen Steuerelemente dienen der Validie-rung und machen die Routineaufgabe der Prüfung von Benutzer-eingaben viel einfacher.
9. Datenbindung: ASP.NET unterstützt datengebundene Steuer-elemente (wie aus Visual Basic 6.0 bekannt), die es mit wenig Programmieraufwand ermöglichen, Daten als Webseite anzuzei-gen und sogar dort zu ändern.
10. State Management: Durch ein verstecktes Formularfeld na-mens "Viewstate" ermöglicht ASP.NET in Webforms ein State Management für die Inhalte von Formularfeldern beim Selbstauf-ruf eines Formulars. Der Viewstate ist die Zusammenfassung der Zustände aller Steuerelemente.
11. ASP.NET bietet für die Speicherung von Zuständen zwischen Seitenübergängen alternativ zur Verwendung von Cookies ein Session Management auf Basis von automatisch generierten eindeutigen Zeichenketten in dem URL.
12. Das Objektmodell der Intrinsic Objects wurde erweitert. Es gibt ein zentrales Intrinsic Object Page, von dem alle anderen Intrinsic Objects abhängen. Zum Teil wurden die Mitglieder der früheren Intrinsic Objects (Response, Request, Server, Applicati-on) geändert.
13. ASP.NET kann nicht nur COM-Komponenten, sondern auch die wesentlich einfacher administrierbaren .NET-Komponenten verwenden. Die .NET-Klassenbibliothek (.NET Framework Class LibraryFCL) bietet zahlreiche .NET-Klassen, die die Webser-ver-Programmierung vereinfachen.
14. ASP.NET unterstützt die Programmierung von WebServices, die per SOAP angesprochen werden können.
15. Konfigurationsinformationen für eine Web-Anwendung wer-den nun nicht mehr in der Internet Information Server-Metabase (oder in der Registry), sondern in einem Textfile mit Namen web.config gespeichert. Die Konfiguration ist daher einfacher geworden, weil für den Entwickler kein Zugriff auf den IIS-Manager mehr nötig ist. Außerdem kann eine Webanwendung durch einfaches Kopieren installiert werden.
16. ASP.NET-Anwendungen sind grundsätzlich voneinander isoliert; sie laufen in verschiedenen Application Domains. Unter-schiedliche Anwendungen können so parallel mit verschiedenen Versionen einer Komponente arbeiten.
17. ASP.NET bietet über die im IIS eingebauten Authentifizie-rungsmechanismen hinaus zwei weitere: per HTML-Formular oder Microsoft Passport.
18. ASP.NET bietet zwei Caching-Mechanismen zur zeitgesteu-erten Zwischenspeicherung von ganzen Seiten oder einzelnen Werten.
19. ASP.NET bietet wesentlich aussagekräftigere Fehlermeldun-gen und einen noch ausführlicheren Tracing-Modus.
20. Die Dateierweiterung für ASP.NET-Seiten ist .aspx. Die herkömmlichen .asp-Seiten funktionieren weiterhin.

Aktuelle Online-Artikel

 Sicherheit in ASP.NET-Webanwendungen
 ASP.NET 2.0-Beispielanwendung
 ASP.NET-Anwendungen installieren und konfigurieren
 Tracing in ASP.NET-Webanwendungen
 Globale Ereignisse in ASP.NET-Webanwendungen - Die Anwendungsdatei "Global.asax"
 Eine prägnanter, tabellarischer Vergleich von ASP und ASP.NET 1.x
 Die Architektur von ASP.NET unter IIS 5.0 und IIS 6.0 im Vergleich
 Einführung in Webserverprogrammierung mit ASP.NET-Webforms

Weitere Ressoucen auf dieser Website

 Website-FAQ: Fragen und Antworten zu dieser Website
 Webbasiertes Diskussionsforum zum .NET Framework
 Newsletter von Dr. Holger Schwichtenberg
 Referenzliste Softwarekomponenten für das .NET Framework (Produktreferenz)

Beratung & Support

Schulungen zu diesem Thema

 ASP.NET Webforms (System.Web) - Datenzugriff
 Erstellung von Web-Anwendungen mit ASP.NET Webforms
 Datenbankbasierte Webanwendungen mit ASP.NET Webforms
 ASP.NET Webforms (System.Web) - Basiswissen
 ASP.NET Webforms (System.Web) - Aufbauwissen
 ASP.NET Webforms (System.Web) - Profiwissen
 ASP.NET Webforms im Überblick - Weboberflächen mit .NET
 ASP.NET Webforms-Crashkurs (3 Tage)
 ASP.NET Core 7.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 6.0
 Neuerungen in .NET Core 2.1/2.2 gegenüber Version 2.0 (inkl. ASP.NET Core, Entity Framework Core)
 Umstieg von .NET-Desktop-Entwicklung (WPF/Windows Forms) auf Webentwicklung (ASP.NET/ASP.NET Core + JavaScript/TypeScript mit Webframeworks wie Angular, Vue.js oder React)
 Von ASP.NET 1.1 nach ASP.NET 2.0: Neuerungen in ASP.NET 2.0
 Tipps & Tricks für bessere Websites/Webanwendungen mit ASP.NET Core
 Migration von ASP.NET 1.x zu ASP.NET 2.0
 ASP.NET WebAPI: REST-Services/HTTP-Services/Microservices
 ASP.NET Core WebAPI 8.0/9.0: REST Services/HTTP Services/Microservices
 Umstieg auf ASP.NET Core 8.0/9.0-Webanwendungen in .NET 6.0/7.0/8.0 (Umstellung/Migration von klassischen ASP.NET-Webanwendungen auf ASP.NET Core)
 Open Data Protocol (OData) mit WCF Data Services und/oder ASP.NET WebAPI und/oder RESTier
 Umstieg von ASP.NET auf moderne Webtechniken (Single-Page-Web-Applications mit HTML, CSS, JavaScript/TypeScript, Angular, Vue.js, React u.a.)
 Moderne Web-Anwendungen mit ASP.NET (Core) MVC, WebAPI, HTML5.x/CSS3 und JavaScript-/TypeScript-Frameworks
 Umstieg auf ASP.NET Core WebAPI und Google RPC (gRPC) in .NET 8.0/9.0 (Umstellung/Migration von ASP.NET WebAPI und/oder WCF in .NET Framework auf ASP.NET Core und gRPC in .NET 6.0/7.0/8.0)
 ASP.NET Dynamic Data Websites - das "Ruby on Rails" von .NET
 ASP.NET Model View Controller (ASP.NET MVC) und ASP.NET WebAPI für ASP.NET MVC 5.x oder ASP.NET MVC Core 6.0/7.0/8.0
 ASP.NET Core 8.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 7.0
 ASP.NET Core 9.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 8.0
 .NET Akademie: Webservices, verteilte Systeme, SOA und REST mit .NET/.NET Core (WCF, ASP.NET WebAPI)
 Von ASP.NET 2.0 nach ASP.NET 3.5: Neuerungen in ASP.NET 3.5.
 Von ASP.NET 3.5 nach ASP.NET 4.0/4.5: Neuerungen in ASP.NET 4.0/4.5
 ASP.NET SignalR / ASP.NET Core SignalR
 Neuerungen in .NET Core 3.0/3.1 gegenüber Version 2.x (inkl. ASP.NET Core, Entity Framework Core, WPF und Windows Forms)
 Anfrage für eine individuelle Schulung zum Thema ASP.NET Webforms ASP.NET  Gesamter Schulungsthemenkatalog