ASP.NET
aus Wikipedia, der freien Enzyklopädie
ASP.NET | |
---|---|
![]() |
|
Basisdaten | |
Entwickler: | Microsoft |
Aktuelle Version: | 2.0 (28. Oktober 2005) |
Betriebssystem: | ab Windows 2000 |
Kategorie: | |
Lizenz: | Proprietäre Software |
Deutschsprachig: | ja |
Website: | ASP.NET Web (Englisch) |
ASP.NET (Active Server Pages .NET, aktuelle Version 2.0 (2006)) ist eine serverseitige Technologie von Microsoft zum Erstellen von Webanwendungen auf Basis des Microsoft.NET-Frameworks.
Mit ASP.NET können Webanwendungen in beliebigen von .NET unterstützten Sprachen (theoretisch alle CLR-kompatiblen Sprachen) erstellt werden, zum Beispiel C#, VB.NET, J#, Delphi.NET, Eiffel.NET, F# oder Managed C++. Eingeschränkt wird die Sprachwahl meistens nur von der jeweiligen IDE.
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 70 Prozent) benötigt, um eine dynamische Web-Site zu erstellen.
Inhaltsverzeichnis |
[Bearbeiten] 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 deutlich beschleunigt und vor allem sicherer. Außerdem wird die Übersichtlichkeit erheblich gesteigert und dazu beigetragen, dass ein strukturierterer Programmcode entsteht.
- Da die Code-Behind-Klassen bereits vor der Laufzeit von der Entwicklungsumgebung kompiliert werden, werden Fehler nachhaltig vermieden, die bei anderen Interpretersprachen wie PHP oder Perl erst bei der Ausführung auf dem Webserver sichtbar werden. Allerdings sollte der Entwickler dann auf im HTML-Code verschachtelten Programmcode verzichten. Der Compiler überprüft diesen Code erst zur Laufzeit. Der Code der Code-Behind-Dateien wird dagegen vom Compiler vollständig überprüft. Dadurch wird eine deutlich 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 eine komfortable Möglichkeit, die Anwendungslogik (den C#-, VB.Net-Code) in von einander getrennten Komponenten zu kapseln und zu schachteln. Webcontrols können aus einzelnen oder mehreren Controls bestehen. Auch der Code der Webcontrols wird üblicherweise in Code-Behind-Dateien gespeichert und kompiliert.
- 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 auf 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 zur Zeit nur begrenzt möglich ist. Ein ähnliches Konzept verfolgt Sun mit den JavaServer Faces (JSF).
[Bearbeiten] Software
Zur Entwicklung von Web-Anwendungen mit ASP.NET steht mit Microsoft Visual Studio .NET eine leistungsfähige RAD-Umgebung mit visuellen Designern zur Verfügung. Teile dieser sind auch in Web Matrix (für ASP.NET 1.1), einer von der Community entwickelten Entwicklungsumgebung verfügbar. Für ASP.NET 2.0 gibt es Visual WebDeveloper Express 2005 (Microsoft, aktuell Version 5, kostenloser Download [1]), eine kostenlose, abgespeckte Variante des Visual Studios. Es beinhaltet einen Webserver, der die Ausführung von ASP.NET-Webseiten auf dem eigenen Rechner erlaubt. Dies erleichtert die Entwicklung und den Test.
Weitere geeignete Programme sind SharpDevelop[2], eine professionelle OpenSource-IDE, MonoDevelop[3] (OpenSource, Linux/BSD) sowie Delphi und der C#Builder von Borland als kommerzielles Produkt.
ASP.NET kann derzeit mit dem Microsoft IIS (5.0/6.0) ab Windows 2000 (keine Unterstützung für Windows NT 4 und abwärts; ebenfalls nicht für Windows 9x) sowie dem XSP-Webserver (Teil des Mono-Projektes, welches ASP.NET unterstützt) genutzt werden. Mit dem Modul mod_mono kann ASP.NET auch, mit Einschränkungen, unter dem Webserver Apache betrieben werden. Im Gegensatz zum IIS der Version 5 ist ASP.NET unter IIS 6 ab Windows Server 2003 direkt im Internet-Information-Server implementiert. Durch diese Vorgehensweise konnten deutliche Performance-Verbesserungen erreicht werden. Eine OpenSource-Variante eines Webservers, der ASP.NET verstehen kann, ist der Cassini[4] Webserver. Dieser ist in C# implementiert. Cassini ist aber kein vollwertiger Webserver wie der IIS. Cassini veranschaulicht selbst, wie Netzwerkfunktionalitäten in C# realisiert werden können. Für erste Erfahrungen und zum Lernen von ASP.NET ist er gut geeignet.
[Bearbeiten] Vorteile
ASP.NET ist vor allem auf Grund des Funktionsumfangs schwieriger als andere Scriptsprachen wie beispielsweise PHP oder Perl zu erlernen. Aber durch die Möglichkeit des Rückgriffs auf die mächtigen Bibliotheken des .NET-Frameworks oder .NET-Komponenten von Drittanbietern ergeben sich für umfangreichere professionelle Projekte viele Vorteile gegenüber den Scriptsprachen.
[Bearbeiten] Nachteile
Das Weniger an Code (durch Codebehind) wird mit einem deutlichen Nachteil an Kontrolle über die Programmausführung durch den Entwickler erkauft. Während in der Vorgängerversion der gesamte Programmcode offen lag und zumindest prinzipiell durch den Programmierer bearbeitet werden konnte, wird durch die Entwicklungsumgebung der mit den Seitenelementen verbundene Programmcode nur noch vorübergehend in einem verborgenen Cache bereitgehalten und bei jeder Änderung automatisch neu erstellt. Dieser als partielle Klasse deklarierte, automatisch erzeugte Codeteil ist vor allem dann störend, wenn mit abgeleiteten „Seiten“-Klassen gearbeitet werden soll, wie es einem konsequenten Objekt-orientierten Ansatz entspricht.
Ebenfalls nachteilhaft ist der Verzicht von ASP.NET 2.0 auf Projektmappen, in denen in den Vorläuferversionen der strukturelle Aufbau der Web-Site und die Referenzen auf externe Ressourcen gespeichert worden ist. Diese Projektmappen wurden von Microsoft für Web-Projekte komplett gestrichen. Statt dessen orientiert sich der Compiler an den Dateiendungen und einer unveränderbaren Konvention der Verzeichnisstruktur. Dateien, die nicht kompiliert werden sollen, müssen umbenannt oder in andere Ordner verlegt werden. Dieses Konzept erschwert die Migration von Projekten der Vorgängerversion von ASP.NET 2.0.
Erst nach erheblichen Protesten hat Microsoft einen Patch zur Verfügung gestellt, der die Erstellung von Web-Projektmappen analog ASP.NET 1.x ermöglicht. Auch das Verhalten der Code-Behind-Dateien kann mit diesem Update so geändert werden, dass anstatt verborgener partieller vom Designer erzeugter Klassen explizite Dateien erzeugt werden, die vom Programmierer bearbeitet werden können. Mit dem Service Pack 1 der Entwicklungsumgebung [5] steht ein Update zur Verfügung, das nun auch die Verwendung von Web-Projektmappen wieder möglich macht und damit die ursprüngliche Änderung am Konzept der Web-Anwendung wieder rückgängig macht.
Die von ASP.NET verwendete Technik zum Speichern der ViewStates führt dazu, dass die vom Browser aufgerufenen Seiten unnötig groß und damit die Seitenaufrufe verlangsamt werden.
ASP.NET ist für eine „normale“ Privatperson eher ungeeignet, da es einerseits für kleine Projekte überdimensioniert ist und andererseits im Vergleich zu PHP nur wenig Webspace mit Unterstützung für ASP.NET gibt. Gründe dafür sind unter anderem die faktische Plattformabhängigkeit (wenngleich mit Mono eine Alternative existiert, die sich bereits in einem weit fortgeschrittenem Stadium befindet) sowie die höheren Lizenzgebühren für Windows-Server.
[Bearbeiten] Zukunft
Derzeit kombiniert Microsoft ASP.NET mit der Technologie Ajax und erstellt die ASP.NET AJAX Extensions (Codename ATLAS). Des Weiteren soll 2007 mit .NET 3.0 WPF erscheinen, das ASP.NET im Rich-Client Bereich ablösen soll.
[Bearbeiten] Literatur
- Holger Schwichtenberg: ASP.NET 2.0 – Das Entwicklerbuch. Microsoft Press, 2006, ISBN 3860635441 (VB) und ISBN 3860635468 (C#)
- Hannes Preishuber: ASP.NET 2.0 Crash Kurs. Microsoft Press, 2006, ISBN 3860639889
- Chris Hart, John Kauffman, Dave Sussman and Chris Ullman: Beginning ASP.NET 2.0. Wiley Publishing, Inc., 2006, ISBN 0-7645-8850-8 (eng.)
Wikibooks: Webentwicklung mit ASP.NET – Lern- und Lehrmaterialien |