Zum Inhalt springen

„ASP.NET“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Änderungen von 190.41.176.217 (Beiträge) rückgängig gemacht und letzte Version von Thijs!bot wiederhergestellt
Zeile 112: Zeile 112:
* {{Wikibooks|Webentwicklung mit ASP.NET}}
* {{Wikibooks|Webentwicklung mit ASP.NET}}
* [http://www.asp.net/ Offizielle Website von Microsoft]
* [http://www.asp.net/ Offizielle Website von Microsoft]
* [http://www.negox.com/ ASP.NET 3.5]
* [http://www.galileocomputing.de/openbook/asp/ Einstieg in ASP.NET, kostenloses Online-Buch]
* [http://www.galileocomputing.de/openbook/asp/ Einstieg in ASP.NET, kostenloses Online-Buch]
* [http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx Seite zum Verständnis der ViewState-Technik]
* [http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx Seite zum Verständnis der ViewState-Technik]

Version vom 3. August 2008, 02:40 Uhr

ASP.NET

Datei:Microsoft .NET Logo.png
Basisdaten

Entwickler Microsoft
Erscheinungsjahr Januar 2002
Aktuelle Version 3.5
Betriebssystem ab Windows 2000
Kategorie Web-Entwicklung
Lizenz Proprietäre Software
deutschsprachig ja
www.asp.net (Englisch), 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.

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 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.
  • 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 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).

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 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, und sind 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 Abstraktion 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 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 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

  • 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 wesentlich 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 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.

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

  1. http://www.microsoft.com/germany/windowsserver2003/uebersicht/webplatform.mspx
  2. 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