- Active Server Pages .NET
-
ASP.NET Basisdaten Entwickler: Microsoft Aktuelle Version: 3.5 Betriebssystem: ab Windows 2000 Kategorie: Web-Entwicklung Lizenz: Proprietäre Software Deutschsprachig: ja MSDN Developer Center zu ASP.NET, www.asp.net/de (Deutsch) ASP.NET (Active Server Pages .NET) ist eine serverseitige Technologie von Microsoft zum Erstellen von Webanwendungen auf Basis des Microsoft-.NET-Frameworks.
Mit ASP.NET können Webanwendungen in von .NET unterstützten Sprachen (theoretisch alle CLR-kompatiblen Sprachen) erstellt werden, gebräuchlich sind nahezu ausschließlich C# und VB.NET. Eingeschränkt wird die Sprachwahl meistens nur von der jeweiligen Entwicklungsumgebung.
ASP.NET trat 2002 mit der ersten Version die Nachfolge des in die Jahre gekommenen ASP (Active Server Pages) an, hat aber heute außer dem Namen nicht mehr viel mit der alten Technologie zu tun. ASP.NET ist seit 2002 in der Version 1.0 „final“. Seit 28. Oktober 2005 gibt es die finale Version von ASP.NET 2.0. Mit ASP.NET 2.0 wird wesentlich weniger Code (laut Microsoft bis zu 70 Prozent [1]) benötigt, um eine dynamische Web-Site zu erstellen. Mit Version 3.5 wurde ASP.NET um Unterstützung für AJAX und LINQ erweitert.
Inhaltsverzeichnis
Unterschiede zu ASP
- Zwar können Code-Elemente nach wie vor im HTML-Code der neuen .aspx und .ascx-Dateien verschachtelt werden, mit ASP.NET wird aber ein Code-Behind-Konzept verfolgt: Jeder Web-Datei kann eine Klasse zugeordnet werden, von der die Seite erbt. Der Code dieser Datei wird bereits vor Aufruf der entsprechenden Seite kompiliert. Durch dieses Konzept können Programm-Code und HTML-Layout vollständig von einander getrennt werden. Die Abarbeitung wird dadurch beschleunigt und sicherer. Außerdem steigert dies die Übersichtlichkeit und Strukturiertheit des Programmcodes.
- Da die Code-Behind-Klassen bereits vor der Laufzeit von der Entwicklungsumgebung kompiliert werden, können Fehler nachhaltig vermieden werden, die bei anderen Interpretersprachen wie PHP oder Perl erst bei der Ausführung auf dem Webserver sichtbar werden. Allerdings sollte der Entwickler dabei auf im HTML-Code verschachtelten Programmcode verzichten, da der Compiler diesen Code erst zur Laufzeit überprüft. Der Code der Code-Behind-Dateien wird dagegen vom Compiler vollständig überprüft, was eine höhere Laufzeitsicherheit erzielt.
- ASP.NET beinhaltet ein zentrales Konzept namens Web-Controls , das Rapid Application Development von Web-Anwendungen ermöglicht. Durch die Verwendung der Web-Controls kann der Code zur Erstellung einer Seite deutlich reduziert werden.
- ASP.NET bietet in Verbindung mit benutzerdefinierten Web-Controls (UserControls) die gleiche komfortable Möglichkeit wie bei Web-Controls (CustomControls) die Anwendungslogik (den C#-, VB.NET-Code) in von einander getrennten Komponenten zu kapseln und zu schachteln, jedoch gibt ein UserControls die Möglichkeit, seinen Inhalt deklarativ (ASPX-Code) zu beschreiben. Webcontrols können aus einzelnen oder mehreren Controls bestehen.
- Web Controls können selbst entwickelt und innerhalb eines Projektes oder auch mehrerer Projekte verwendet werden. Es existiert ein mittlerweile sehr umfangreicher Markt, über den eine Vielzahl von wiederverwendbaren Controls frei oder kommerziell erhältlich sind. Komplexe Anforderungen müssen daher häufig nicht selbst entwickelt werden.
- ASP.NET unterstützt mit der ViewState-Technik eine erweiterte Möglichkeit, Speicherinhalt zwischen einzelnen Seitenaufrufen zu erhalten. Während mit der Session-State-Technik bei Active-Server-Pages bisher nur eine von den Seitenaufrufen losgelöste Speicherverwaltung existierte, hat der Entwickler bei ASP.NET die Möglichkeit, Speicherinhalte in einer ViewState-Collection abzulegen um beim nächsten Seitenaufruf darauf zuzugreifen. Im Gegensatz zum Session-State wird der ViewState nicht auf dem Server, sondern in der zurückgegebenen Seite gespeichert.
- Mit der von ASP.NET unterstützten ViewState-Technik erhalten Controls ihren Status auch über subsequente Seitenaufrufe hinweg, was mit herkömmlichen Techniken zurzeit nur begrenzt möglich ist. Ein ähnliches Konzept verfolgt Sun mit den JavaServer Faces (JSF).
Entwicklungsumgebungen
Tool unterstützte ASP.NET Version Lizenz Plattform Microsoft Visual Studio 2008 2.0, 3.5 kommerziell Windows Microsoft Visual Studio 2005 2.0 kommerziell Windows Visual Web Developer Express 2008 [1] 2.0, 3.5 kostenlos Windows SharpDevelop 1.1, 2.0 open-source Windows MonoDevelop 1.1, 2.0 open-source hauptsächlich Linux, BSD Borland Delphi kommerziell Windows Borland C#Builder kommerziell Windows Nur noch von historischem Interesse ist das von Microsoft unterstützte Community-Projekt ASP.NET Web Matrix, eine Entwicklungsumgebung für ASP.NET 1.0 und 1.1. Für neuere ASP.NET-Versionen empfiehlt Microsoft stattdessen den Einsatz von Visual Web Developer Express als kostenlose Entwicklungsumgebung.[2]
Im Zusammenhang mit Linux ist das Mono-Projekt hervorzuheben, das ASP.NET (bzw. das .NET-Framework ganz allgemein) plattformunabhängig macht. Da Microsoft das .NET-Framework jedoch nur für sein Betriebssystem Windows entwickelt, ist damit zu rechnen, dass Weiterentwicklungen erst nach einer Verzögerung ins Mono-Projekt aufgenommen werden.
Webserver
- Microsoft Visual Studio .NET und Visual WebDeveloper Express enthalten ab der Version 2005 einen eigenen Webserver, weshalb zum Entwickeln mit diesen Produkten kein IIS mehr benötigt wird.
- Internet Information Services (IIS 5.0/6.0/7.0) ab Windows 2000 (für Windows NT 4 und älter, sowie für Windows 9x gibt es keine Unterstützung). Im Gegensatz zu den IIS der Version 5 ist ASP.NET unter IIS 6 ab Windows Server 2003 direkt implementiert, wodurch deutliche Performance-Verbesserungen erreicht werden konnten. Die IIS sind – in eingeschränkter Form – auch in manchen Consumer-Versionen von Windows enthalten (Windows XP Professional, Vista ab Edition Business).
- XSP-Webserver (Teil des Mono-Projektes). Dieser Server steht für Windows und Linux zur Verfügung und kann über das Apache-Modul mod_mono an den Apache Webserver angebunden werden. XSP ist in C# geschrieben, steht unter einer Open Source-Lizenz und unterstützt ASP.NET 2.0 (ohne Webparts).
- Cassini-Webserver. Dieser Webserver wurde von Microsoft als schlankes Beispielprogramm zur Verfügung gestellt und soll Entwicklern Einblicke in die Funktionsweise des ASP.NET Hosting geben. Cassini ist in C# implementiert und steht unter einer Shared-Source-Lizenz.
Vorteile
- ASP.NET ist keine Programmiersprache, sondern eine Technologie. Somit kann jede ASP.NET Webseite in allen .Net-Sprachen (z.B. C#, VB.NET oder auch PHP) programmiert werden
- ASP.NET-Sprachen werden nicht interpretiert, sondern (in CIL) übersetzt
- ASP.NET trennt durch Codebehind die Darstellung von der Programmlogik. Wer dies nicht verwenden will, hat die Möglichkeit die Funktion Render zu überschreiben, und sich hier (vollkommen unabhängig von der Design-Ansicht) das HTML komplett selbst zu erzeugen
- Da das .NET-Framework selbst viele Funktionen zur Verfügung stellt, sind viele Anforderungen (wie etwa Bildbearbeitung oder XML-Verarbeitung) im Gegensatz zu beispielsweise PHP ohne Installation von zusätzlichen Libraries möglich
- Das Programmmodell (mit Events, die von Controls ausgelöst werden) ist dem von .Net-Applikationen sehr ähnlich, somit ist für Entwickler, die schon Applikationen für das .NET-Framework geschrieben haben, ASP.NET (und C#/VB.NET) leicht möglich. Meist können für Windows-Applikationen programmierte Funktionen oder Klassen sogar ohne Änderung in ASP.NET weiterverwendet werden
- ASP.NET stellt auch Funktionalität für die Client- und Server-Programmierung von SOAP Webservices und AJAX bereit.
- Mit Web-Controls können Teile einer Webseite gekapselt und wiederverwendet werden. Neben den mitgelieferten Controls wie beispielsweise einem Kalendercontrol oder einer Gridview (Tabellenansicht von Daten) gibt es unzählige (freie und kostenpflichtige) Controls von Drittanbietern wie etwa Charting-Engines
- Durch die Abstraktion der auf einer Webseite verwendeten Funktionalitäten (von Textbox über Buttons bis kompletten Kalendercontrol) in Servercontrols können browserunabhängige Webseiten erstellt werden. Zusätzlich kann mit den CSS Friendly Adaptors auf den generierten HTML Code (auch Browserspezifisch) von Standardcontrols Einfluss genommen werden, so dass diese standardkonformes HTML erzeugen, das etwa keine Tabellen zur Layoutgestaltung verwendet.
Die Abstraktion geht soweit, dass z.B. eine komplette Rechteverwaltung (User/Roles) – mitsamt Login, „Passwort vergessen“, und ähnlichem – fast ohne selbstgeschrieben Code, zumindest aber mit vorgefertigten Klassen in die eigene Seite implementiert werden kann. Auch ein Schutz von Dateien kann damit implementiert werden.
Zusätzlich bietet ASP.NET das Konzept der WebParts. Mit diesen können Intranets erstellt werden, in denen jeder Benutzer selbst konfiguriert, was er an welcher Stelle der Seite sehen will.
Nachteile
- Da ASP.NET in vielen Bereichen andere Konzepte als verbreitete Skriptsprachen verfolgt, stellt die Einarbeitung für Entwickler, die von anderen Skriptsprachen kommen, zusätzlichen Aufwand dar. Vor allem für Entwickler, die unter .NET schon entwickelt haben, ist ASP.NET hingegen einfacher zu erlernen.
- Mit ASP.NET ist man de facto an einen unter Betriebssystemen der Firma Microsoft laufenden Server gebunden. Es gibt zwar freie .NET (und ASP.NET)-Implementierungen, diese sind aber (noch) nicht hundertprozentig kompatibel, und hinken daher neuen .NET-Versionen immer zumindest einige Monate hinterher.
Zukunft
Microsoft hat für sich erkannt, dass HTML/CSS/JavaScript für Rich-Clients nicht mehr ausreichend ist. Aus diesem Grund entwickelt Microsoft zurzeit Silverlight. Silverlight selbst hat zwar wenig mit ASP.NET zu tun, wird aber wohl in einigen Bereichen ASP.NET ersetzen oder zumindest eng damit zusammenarbeiten.
Silverlight (vormals WPF/E) ist ähnlich Flash ein Browserplugin, welches die Restriktionen von HTML zu umgehen versucht. Im Gegensatz zu Flash wird allerdings der Inhalt (Oberfläche, Animation oder Skript) des Applets in XML zum Browser geschickt (WPF, Windows Presentation Foundation). Dies hat zur Folge, dass solche Seiten auch problemlos mit serverseitigem Code generiert werden können, wenngleich hierfür Tools (Expression Blend) verwendet werden.
Silverlight soll offiziell nicht in direkter Konkurrenz zu Flash stehen, wird aber wohl in diese treten, wie ein Blick auf die Features des Plugins zeigt.
Versionsgeschichte
Version korrespondierende Visual Studio-Version Veröffentlichung 3.5 Microsoft Visual Studio 2008 November 2007 2.0 Microsoft Visual Studio 2005 November 2005 1.1 Microsoft Visual Studio .NET 2003 April 2003 1.0 Microsoft Visual Studio .NET Januar 2002 Einzelnachweise
- ↑ http://www.microsoft.com/germany/windowsserver2003/uebersicht/webplatform.mspx
- ↑ http://www.asp.net/downloads/archived/web-matrix/
Literatur
- Jana Frank, Patrick A. Lorenz: ASP.NET 3.5 mit AJAX. Carl Hanser Verlag, München 2008, ISBN 3-44641-199-2
- Chris Hart, John Kauffman, Dave Sussman and Chris Ullman: Beginning ASP.NET 2.0. Wiley Publishing, Inc., 2006, ISBN 0-7645-8850-8 (eng.)
- Hannes Preishuber: ASP.NET 2.0 Crash Kurs. Microsoft Press, 2006, ISBN 3-86063-988-9
- Holger Schwichtenberg: ASP.NET 2.0 – Das Entwicklerbuch. Microsoft Press, 2006, ISBN 3-86063-544-1 (VB) und ISBN 3-86063-546-8 (C#)
- Christian Wenz, Andreas Kordwig, Christian Trennhaus: Jetzt lerne ich ASP.NET. Markt und Technik, Oktober 2004, ISBN 3-8272-6813-3
Weblinks
Wikimedia Foundation.