„ASP.NET“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
W!B: (Diskussion | Beiträge) K →Nachteile: .. |
|||
Zeile 35: | Zeile 35: | ||
Weitere geeignete Programme sind [[SharpDevelop]], eine professionelle [[OpenSource]]-IDE, [[MonoDevelop]] (OpenSource, [[Linux]]/[[Berkeley Software Distribution|BSD]]) sowie [[Borland Delphi|Delphi]] und der ''[[C#Builder]]'' von Borland als kommerzielles Produkt. |
Weitere geeignete Programme sind [[SharpDevelop]], eine professionelle [[OpenSource]]-IDE, [[MonoDevelop]] (OpenSource, [[Linux]]/[[Berkeley Software Distribution|BSD]]) sowie [[Borland Delphi|Delphi]] und der ''[[C#Builder]]'' von Borland als kommerzielles Produkt. |
||
ASP.NET kann derzeit mit dem [[Internet Information Services|Microsoft IIS]] (5.0/6.0/7.0) ab [[Windows 2000]] genutzt werden, (für [[Windows NT]] 4 und abwärts; ebenfalls nicht für [[Windows 9x]] gibt |
ASP.NET kann derzeit mit dem [[Internet Information Services|Microsoft IIS]] (5.0/6.0/7.0) ab [[Windows 2000]] genutzt werden, (für [[Windows NT]] 4 und abwärts; ebenfalls nicht für [[Windows 9x]] gibt es keine Unterstützung. Auch für den [[XSP-Webserver]] (Teil des [[Mono-Projekt]]es, welches ASP.NET unterstützt) ist es verfügbar. Mit dem Modul ''mod_mono'' kann ASP.NET auch, mit Einschränkungen, unter dem Webserver [[Apache HTTP Server|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 Webserver]]''. Dieser ist in C# implementiert. Cassini ist aber kein vollwertiger Webserver wie der IIS. Cassini veranschaulicht selbst, |
Eine [[OpenSource]]-Variante eines Webservers, der ASP.NET verstehen kann, ist der ''[[Cassini Webserver]]''. Dieser ist in C# implementiert. Cassini ist aber kein vollwertiger Webserver wie der IIS. Cassini veranschaulicht selbst, |
Version vom 27. August 2007, 08:13 Uhr
ASP.NET
| |
---|---|
Datei:Microsoft .NET Logo.png | |
Basisdaten
| |
Entwickler | Microsoft |
Erscheinungsjahr | Januar 2002 |
Aktuelle Version | 2.0 (7. November 2005) |
Betriebssystem | ab Windows 2000 |
Kategorie | Web-Entwicklung |
Lizenz | Proprietäre Software |
deutschsprachig | ja |
ASP.NET Web (Englisch) |
ASP.NET (Active Server Pages .NET, aktuelle Version 3.0) 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.
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 zurzeit nur begrenzt möglich ist. Ein ähnliches Konzept verfolgt Sun mit den JavaServer Faces (JSF).
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, 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, eine professionelle OpenSource-IDE, MonoDevelop (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/7.0) ab Windows 2000 genutzt werden, (für Windows NT 4 und abwärts; ebenfalls nicht für Windows 9x gibt es keine Unterstützung. Auch für den XSP-Webserver (Teil des Mono-Projektes, welches ASP.NET unterstützt) ist es verfügbar. 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 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.
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 wird nicht interpretiert, sondern (in CLR) übersetzt, und ist somit in vielen Bereichen schneller als andere Script Sprachen
- ASP.NET trennt durch Codebehind die Darstellung von der Programmlogik, was einen wartbareren Code als Ergebnis zur Folge hat. 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 sehr viele Funktionen zur Verfügung stellt, sind viele Anforderungen (wie z. B. Bildbearbeitung oder XML-Verarbeitung) im Gegensatz zu z. B. 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) sehr leicht möglich. Meist können für Windows-Applikationen programmierte Funktionen oder Klassen sogar ohne Änderung in ASP.NET weiterverwendet werden
- Die Einbindung von Ajax in ASP.NET ist sehr einfach zu verstehen und zu implementieren. Microsoft stellt hier auch JavaScript Klassen zur Verfügung. Die Bereitstellung von SOAP Webservices am Server, bzw die Verwendung am Server (ASP.NET) und Client (JavaScript) ist sehr leicht zu erlernen
- Mit Web-Controls können Teile einer Webseite gekapselt und wiederverwendet werden. Neben den mitgelieferten Controls wie z. B. einem Kalendercontrol oder einer Gridview (Tabellenansicht von Daten) gibt es unzählige (freie und kostenpflichtige) Controls von Drittanbietern wie z B. Charting-Engines
- Durch die Abstrahierung der auf einer Webseite verwendeten Funktionalitäten (von Textbox über Buttons bis kompletten Kalendercontrol) in Servercontrols können sehr schnell 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 ein Standardkonformes HTML erzeugen, dass z. B. keine Tabellen zur Layoutgestaltung verwendet.
Die Abstrahierung 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 Verzeichnissen oder Files ist hier sehr einfach zu implementieren.
Zusätzlich bietet ASP.NET das Konzept der Webparts. Mit diesen können Intranets, in denen jeder Benutzer selbst konfiguriert was an welcher Stelle der Seite er sehen will, sehr einfach erstellt werden.
Nachteile
- Weil die Technik der ViewStates leider recht schlecht dokumentiert ist, ist das Verständnis dieser leider nicht sehr weit verbreitet. Aus diesem Grund tendieren die meisten Entwickler unbewußt Seiten ViewState unfriendly zu entwickeln, was unnötig große ViewState-Fields zur Folge hat. Auch wenn es Möglichkeiten gibt die ViewState nicht in einer Hidden Variable, sondern in der Session zu speichern, sollten Seiten in diesem Punkt angepasst oder gleich richtig entwickelt werden.
- ASP.NET wird von Hostinganbietern im Vergleich zu PHP fast gar nicht unterstützt. Damit fällt es Privatpersonen etwas schwerer, einen Provider zu finden, der die erstellte Seite hostet. Die Angebote selbst sind dann (aufgrund der Lizenzgebühr für einen Windows Server) meist etwas teurer als ähnliche Angebote, die nur mit OpenSource-Software laufen, etwa LAMP.
- Da ASP.NET in vielen Bereichen andere Konzepte als verbreitete Skriptsprachen verfolgt, ist die Einarbeitung für Entwickler, die PHP oder Perl gewohnt sind, aufwändig. Für nichtprofessionelle Softwareentwickler sind Skriptsprachen vermutlich leichter zu erlernen als ein komplett objektorientiertes System.
Mit ASP.NET ist man de facto an einen unter Betriebsystemen der Firma Microsoft laufenden Server gebunden. Es gibt zwar freie .NET (und ASP.NET)-Implementierungen, diese sind aber (noch) nicht hundertprozentig kompatibel, und hinken logischerweise 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 auch wenig mit ASP.NET zu tun, wird aber sehr wohl in einigen Bereichen ASP.NET ersetzen oder zumindest sehr nah 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), was zur Folge hat, 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, wenn man sich die Features ansieht, sehr wohl in diese treten.
Literatur
- 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 3860639889
- Holger Schwichtenberg: ASP.NET 2.0 – Das Entwicklerbuch. Microsoft Press, 2006, ISBN 3860635441 (VB) und ISBN 3860635468 (C#)
- Christian Wenz, Andreas Kordwig, Christian Trennhaus: Jetzt lerne ich ASP.NET. Markt und Technik, Oktober 2004, ISBN 3827268133
Weblinks
- Wikibooks: Webentwicklung mit ASP.NET – Lern- und Lehrmaterialien
- Offizielle Website von Microsoft
- deutschsprachiges Portal für ASP.NET-Entwickler
- DotNetSpace ASP.NET 2.0 Artikel, Referenzen
- Einstieg in ASP.NET, kostenloses Online-Buch
- Viele gute deutsche Artikel über ASP.NET
- ASP.NET-Community – Beispiele, Artikel, Foren, Referenzen
- Cassini - Web Server á la .NET
- Sehr gute Seite zum Verständis der ViewState-Technik