ASP.NET Webforms (ASP.NET)
Eintrag zuletzt aktualisiert am: 07.07.2012
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 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:
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
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 A
SPX-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 Library –
FCL) 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.