Übersicht über ASP.NET-Webseiten
Aktualisiert: November 2007
ASP.NET-Webseiten dienen als programmierbare Benutzeroberfläche für Webanwendungen. Eine ASP.NET-Webseite zeigt dem Benutzer in einem beliebigen Browser und auf einem beliebigen Clientgerät Informationen an und implementiert mithilfe von serverseitigem Code die Anwendungslogik. ASP.NET-Webseiten sind:
Basierend auf der ASP.NET-Technologie von Microsoft, in der auf dem Server ausgeführter Code die Webseitenausgabe dynamisch für den Browser oder das Clientgerät generiert.
Kompatibel mit allen Browsern oder mobilen Geräten. Auf einer ASP.NET-Webseite wird automatisch der richtige browserkompatible HTML-Code für Features wie Formatvorlagen, Layout usw. dargestellt. Alternativ können Sie ASP.NET-Webseiten entwerfen, die speziell auf einen bestimmten Browser zugeschnitten sind, z. B. auf Microsoft Internet Explorer 6, um auf diese Weise die browserspezifischen Features optimal zu nutzen.
Kompatibel mit jeder von der .NET-Common Language Runtime unterstützten Sprache, einschließlich Microsoft Visual Basic, Microsoft Visual C#, Microsoft J# und Microsoft JScript .NET.
Basiert auf Microsoft .NET Framework. Dies bietet alle Vorteile des Framework einschließlich einer verwalteten Umgebung, Typsicherheit und Vererbung.
Flexibel, da vom Benutzer erstellte Steuerelemente sowie Steuerelemente von Fremdherstellern hinzugefügt werden können.
Komponenten von ASP.NET-Webseiten
In ASP.NET-Webseiten ist die Benutzeroberflächenprogrammierung in zwei Teile unterteilt: die visuelle Komponente und die logische Komponente. Auch bei Visual Basic und Visual C++ gibt es diese Unterteilung zwischen dem sichtbaren Teil einer Seite und dem Code hinter der Seite, der mit der Seite interagiert.
Die visuelle Komponente besteht aus einer Datei, die statisches Markup wie HTML und/oder ASP.NET-Serversteuerelemente enthält. Die ASP.NET-Webseite fungiert als Container für den statischen Text und die Steuerelemente, die Sie anzeigen möchten.
Die Logik für die ASP.NET-Webseite besteht aus Code, den Sie für die Interaktion mit der Seite erstellen. Der Code kann sich entweder in einem script-Block in der Seite oder in einer separaten Klasse befinden. Wenn sich der Code in einer separaten Klassendatei befindet, wird diese Datei als Code-Behind-Datei bezeichnet. Der Code in der Code-Behind-Datei kann in Visual Basic, Visual C#, Visual J# oder JScript .NET geschrieben sein. Weitere Informationen über den Aufbau von ASP.NET-Webseiten finden Sie unter Codemodell für ASP.NET-Webseiten.
ASP.NET-Webseiten werden in eine DLL-Datei (Dynamic Link Library) kompiliert. Wenn der Benutzer das erste Mal nach einer ASPX-Seite sucht, generiert ASP.NET automatisch eine .NET-Klassendatei, die die Seite darstellt. Diese Datei wird dann kompiliert. Die DLL-Datei wird auf dem Server ausgeführt und erzeugt dynamisch die HTML-Ausgabe für die Seite. Weitere Informationen zum Kompilieren von ASP.NET-Anwendungen finden Sie unter Übersicht über die ASP.NET-Kompilierung.
Welche Möglichkeiten bieten ASP.NET-Webseiten?
Die Webanwendungsprogrammierung konfrontiert Sie mit Herausforderungen, die bei der Programmierung von traditionellen, clientbasierten Anwendungen normalerweise nicht auftreten. Zu diesen Herausforderungen gehören:
Implementieren einer umfangreichen Webbenutzeroberfläche: Das Entwerfen und Implementieren einer Benutzeroberfläche mit komplexem Layout, umfangreichem dynamischem Inhalt und vollfunktionsfähigen benutzerinteraktiven Objekten nur mit den HTML-Grundfunktionen kann zu einem schwierigen und mühsamen Unterfangen werden.
Trennung von Client und Server: In einer Webanwendung sind Client (Browser) und Server verschiedene Programme, die oft auf verschiedenen Computern (und sogar auf verschiedenen Betriebssystemen) ausgeführt werden. Daher nutzen die beiden Hälften der Anwendung sehr wenige Informationen gemeinsam. Sie können kommunizieren, tauschen aber normalerweise nur kleine, einfache Informationen aus.
Zustandsfreie Ausführung: Wenn ein Webserver eine Anforderung für eine Seite erhält, sucht er die Seite, verarbeitet sie, sendet sie an den Browser und verwirft dann alle Seiteninformationen. Wenn der Benutzer dieselbe Seite nochmals anfordert, wiederholt der Server die gesamte Sequenz, d. h. die Seite wird von Anfang an wieder verarbeitet. Anders formuliert: Verarbeitete Seiten werden vom Server nicht gespeichert – sie sind also zustandsfrei. Die Zustandsfreiheit einer Seite kann zum Problem werden, wenn eine Anwendung auf das Speichern von Seiteninformationen angewiesen ist.
Unbekannte Clientfähigkeiten: In der Regel werden Webanwendungen von vielen Benutzern mit entsprechend unterschiedlichen Browsern genutzt. Browser verfügen über verschiedene Funktionen, d. h. es ist schwierig eine Anwendung zu erstellen, die in allen Browsern gleich gut ausgeführt werden kann.
Schwierigkeiten beim Datenzugriff: Das Lesen von einer Datenquelle und das Schreiben in eine Datenquelle kann in herkömmlichen Webanwendungen ein komplizierter und ressourcenintensiver Vorgang sein.
Schwierigkeiten bei der Skalierbarkeit: Mit herkömmlichen Methoden entworfene Webanwendungen stoßen bei der Skalierbarkeit aufgrund fehlender Kompatibilität zwischen den verschiedenen Komponenten oft an Grenzen. Dies ist eine häufige Schwachstelle bei Anwendungen mit hohen Wachstumsraten.
Das Erfüllen dieser Anforderungen für Webanwendungen kann sehr zeitaufwendig und mühsam sein. ASP.NET-Webseiten und das ASP.NET-Seitenframework unterstützen Sie wie folgt beim Erfüllen dieser Anforderungen:
Intuitives und konsistentes Objektmodell: Das ASP.NET-Seitenframework bietet ein Objektmodell, mit dem Sie Formulare als Einheit statt als separate Client- und Serverteile betrachten können. Bei diesem Modell können Sie die Seite auf eine intuitivere Art als in traditionellen Webanwendungen programmieren, und Sie haben zudem die Möglichkeit, Eigenschaften für Seitenelemente festzulegen und auf Ereignisse zu reagieren. Außerdem sind ASP.NET-Serversteuerelemente eine Abstraktion vom physikalischen Inhalt einer HTML-Seite und der direkten Interaktion zwischen Browser und Server. Im Allgemeinen können Sie Webserversteuerelemente wie Steuerelemente in einer Clientanwendung verwenden und müssen nicht über die Erstellung von HTML nachdenken, um die Steuerelemente und deren Inhalt darzustellen und zu verarbeiten.
Ereignisgesteuertes Programmiermodell: ASP.NET-Webseiten übertragen ein bekanntes Modell auf Webanwendungen: das Schreiben von Ereignishandlern für Ereignisse, die entweder auf dem Client oder auf dem Server stattfinden. Das ASP.NET-Seitenframework abstrahiert dieses Modell so, dass der zugrunde liegende Mechanismus für das Erfassen eines Ereignisses auf dem Client, das Senden dieses Ereignisses an den Server und das Aufrufen der entsprechenden Methode automatisch stattfindet und für Sie unsichtbar ist. Das Ergebnis ist eine deutliche, leicht schreibbare Codestruktur, die die ereignisgesteuerte Entwicklung unterstützt.
Intuitive Zustandsverwaltung: Das ASP.NET-Seitenframework verwaltet die Speicherung des Zustands der Seite und der Steuerelemente automatisch und stellt explizite Möglichkeiten bereit, um den Zustand anwendungsspezifischer Informationen zu verwalten. Dazu werden nur wenige Serverressourcen benötigt, und die Implementierung kann mit oder ohne Senden von Cookies an den Browser ausgeführt werden.
Browserunabhängige Anwendungen: Mit dem ASP.NET-Seitenframework kann jegliche Anwendungslogik auf dem Server erstellt werden, sodass Unterschiede zwischen den Browsern nicht mehr explizit im Code berücksichtigt werden müssen. Sie können die Vorteile von browserspezifischen Features jedoch weiterhin nutzen, indem Sie clientseitigen Code schreiben, um verbesserte Leistung und umfangreichere Clientnutzung zu bieten.
Unterstützung für die .NET Framework-Common Language Runtime: Dadurch, dass das ASP.NET-Seitenframework auf .NET Framework basiert, steht das gesamte Seitenframework jeder ASP.NET-Anwendung zur Verfügung. Die Anwendungen können in einer beliebigen Sprache geschrieben sein, die mit der Laufzeit kompatibel ist. Darüber hinaus wird der Zugriff auf Daten mithilfe der Infrastruktur für den Datenzugriff erleichtert, die von .NET Framework, einschließlich ADO.NET, zur Verfügung gestellt wird.
Skalierbare .NET Framework-Serverleistung: Mit dem ASP.NET-Seitenframework können Webanwendungen problemlos und ohne komplizierte Änderungen der Anwendungslogik von einem Computer mit nur einem Prozessor auf eine Webfarm aus mehreren Computern skaliert werden.