Von Hannes Preishuber
Google, Amazon oder auch eBay sind klassische Beispiele einer Web-Anwendung. Immer dann wenn mehre Web-Seiten dynamisch generierten Inhalt liefern, wird dies als Web-Anwendung bezeichnet. Funktionell werden dabei meist Daten editiert, eingefügt oder schlicht visualisiert. Man kann behaupten, dass beinahe jede moderne Web-Seite mehr als statischen Inhalt liefern muss, um den Nutzer einen Mehrwert zu bieten.
Mit Active Server Pages (ASP) bietet Microsoft schon seit langem eine kostenfreie und auf COM sowie Scripting basierende Technologie zur Realisierung einer Web-Anwendung. Seit nun mehr drei Jahren unterstützt das .NET Framework den offiziellen Nachfolger von ASP. Mit der als ASP.NET bezeichneten Technologie lassen sich mit weniger Zeitaufwand leistungsfähigere Web-Anwendungen mit guter Tools-Unterstützung erstellen.
Auf dieser Seite
Überblick
Vieles vereinfacht
Visual Web Developer 2005
Web-Projekte
Master Pages
Navigation
Themes
Authentifzierung
Personalisierung
Web Parts
Datenzugriff
Jede Menge Nützliches
ASP.NET 2.0 Crashkurs
Überblick
Mit der in Kürze erscheinenden Version ASP.NET 2.0 wird vor allem die Entwicklung der Web-Anwendung einfacher. Das Feedback der Entwickler-Community aus der Version 1.0 hat zu vielen Detailänderungen geführt. Im Ergebnis braucht man nun deutlich weniger Code als in der Vorgängerversion. Manche Aufgaben wie Darstellung und Editieren von Daten lassen sich meist völlig ohne Programmierung erledigen. Damit wird ASP.NET 2.0 auch für den Semiprofi oder Hobbyisten interessant.
Dieses Feature gibt einen kurzen Überblick in die Neuerungen von ASP.NET 2.0. Ergänzt werden diese Informationen durch externe nützliche Ressourcen zu den jeweiligen Themen.
Zwar ist ASP.NET 2.0 noch nicht in der finalen Version erhältlich, aber es lohnt bereits heute damit zu arbeiten. Ermöglicht wird dies durch die zur Beta 2 erhältliche GoLive-Lizenz.
http://lab.msdn.microsoft.com/vs2005/golive/
Brian Goldfarb vom ASP.NET Team schreibt in seinem Blog einige Tipps zur Verwendung.
http://blogs.msdn.com/bgold/archive/2005/04/17/409045.aspx
Damit können Sie heute schon die Vorteile nutzen und so z.B. Ihr neues Projekt bereits mit ASP.NET 2.0 starten.
Da bereits einige Hoster, teilweise kostenfrei, das Hosting auf Basis von ASP.NET 2.0 anbieten, können Sie auch gleich beginnen, die erste Web Anwendung dafür zu erstellen.
Vieles vereinfacht
Durch den Einsatz der zahlreichen neuen Web-Steuerelemente und .NET-Klassen kann nun mit wesentlich weniger Aufwand programmiert werden. Um alles Wichtige über die Neuerungen zu erfahren, ist der ideale Einstiegspunkt das amerikanische ASP.NET Development Center auf MSDN.
http://msdn.microsoft.com/asp.net/beta2/default.aspx
Auch die deutsche MSDN Web Site bietet ein Development Center zum Thema Web Development:
http://www.microsoft.com/germany/msdn/asp.net/default.mspx
Das versenden einer E-Mail benötigt jetzt nun nur mehr zwei Zeilen Code und hat dazu aber zahlreiche Optionen hinzugewonnen. Aus dem Namensraum System.Net wird dazu die Klasse SmtpClient verwendet.
Dim myMail As New Net.Mail.SmtpClient
myMail.Send("asp@ppedv.de", "hannesp@ppedv.de", "Betreff", "Nachricht")
Dieses und weitere Beispiele lassen sich in den Quickstart Tutorials nachschlagen und auch ausprobieren.
http://beta.asp.net/QUICKSTARTV20/aspnet/default.aspx
Visual Web Developer 2005
Einen wesentlichen Zuwachs an Produktivität bringt auch die neue Entwicklungsumgebung mit sich. Visual Web Developer 2005 gibt es unter anderem für Einsteiger als Express Version.
http://lab.msdn.microsoft.com/express/vwd/
Visual Web Developer 2005 ist somit der Nachfolger von Web Matrix, übertrifft dies allerdings im Funktionsumfang bei weitem. Der visuelle Editor unterstützt Intellisense, Drag & Drop und mehrere Sprachen wie Visual Basic und C#.
So kann mit Hilfe der Snippet-Verwaltung ein Code-Schnipsel nach Wunsch eingefügt werden. Wenn man z.B. die Funktionalität E-Mail versenden implementieren möchte, kann per Rechtsklick ohne Tippen der notwendige Code eingefügt werden.
Das Snippet-System basiert auf XML und kann mit dem frei verfügbaren Zusatzwerkzeug Snippet Editor auch auf eigene Bedürfnisse angepasst werden. Der Download findet sich unter
http://msdn.microsoft.com/vbasic/downloads/2005/tools/snippeteditor/
Management
Web-Anwendungen lassen sich nun auch per Web-Oberfläche verwalten. Das Web Site Administration Tool erlaubt es häufige Aufgaben, wie das Verwalten von Benutzern, durchzuführen. Dank des mitgelieferten ASP.NET Development Servers kann man auch ohne IIS Web-Seiten erstellen und lokal testen. Jeff Prosise beschreibt die Verwendung in einem seinem Webcast Application Infrastructure aus der ASP.NET 2.0 Webcasts-Serie.
http://msdn.microsoft.com/asp.net/support/multimedia/
Starterkits
Wer es noch einfacher will, kann auch fertige Lösungen aus den Starterkits verwenden. Aktuell stehen drei Starterkits zur Verfügung mit denen auch hervorragend ASP.NET 2.0 erlernt werden kann.
http://lab.msdn.microsoft.com/express/vwd/starterkit/default.aspx
Web-Projekte
Die von ASP.NET 1.1 bekannten Web-Projekte werden so nicht fortgeführt. Zwar lassen sich diese noch öffnen, werden dann aber automatisch in ASP.NET 2.0 Web Sites konvertiert.
Ein Web-Projekt definiert sich nun schlicht und einfach durch ein Verzeichnis. Es wird nunmehr jede ASPX-Seite in eine eigene DLL kompiliert. Je nach Modus der Kompilierung kann sogar der HTML-Teil einer ASPX Seite kompiliert werden. Dies bedeutet einen besonderen Schutz vor Änderung oder Code-Diebstahl. Eine besondere Bedeutung kommt dabei der Verzeichnisstruktur zu.
Folgende Tabelle zeigt die wichtigsten Verzeichnisse in einer ASp.NET 2.0-Anwendung.
|
App_code
|
Code-Dateien die von allen ASPX-Seiten genutzt werden können.
|
|
App_data
|
Speicherort für Datenbanken mit besonderem Zugriffsschutz.
|
|
App_GlobalResources
|
Speicherort für globale Resource-Dateien wie sie z.B. für mehrsprachige Webseiten verwendet werden.
|
|
App_LocalResources
|
Darin werden Resx-Dateien zu einer spezifischen ASPX-Seite abgelegt.
|
|
App_Themes
|
Themes geben der Anwendung die passende Optik.
|
|
Bin
|
Kompilierte Assemblys.
|
Eine Web-Seite besteht hauptsächlich aus ASPX-Dateien, die HTML-Code, Steuerelemente und Programm-Code enthalten können. Wenn der Programm-Code in eine eigene Seite ausgelagert wird, spricht man von Code-Beside. Dank der neuen Funktion der partiellen Klassen ist das Programmiermodell viel einfacher als in ASP.NET 1.1. In der ASPX-Seite wird mit dem Attribut CodeFile auf die Klassendatei verwiesen.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
Die Code-Datei erhält die zur Programmiersprache passende Endung (meist .vb oder .cs). Mit dem Schlüsselwort Partial (in Visual Basic .NET) wird eine Teilklasse erstellt.
Partial Class Test
Inherits System.Web.UI.Page
Die Details zum erstellen von Web Seiten werden Schritt für Schritt in den sogenannten "Walkthroughs" beschrieben.
http://msdn2.microsoft.com/library/22682ddf(en-us,vs.80).aspx
Master Pages
Als nächstes erhält die Anwendung eine optische Struktur. Dabei helfen Master Pages, ein Vorlagensystem zu erstellen. Die Master Page gibt das Design und die Elemente vor, die allen Seiten gemein ist. Das kann ein Menü oder ein Suchdialog sein. Als Platzhalter wird das ContentPlaceHolder-Steuerelement verwendet. Die Entwicklungsumgebung unterstützt dabei die komplette visuelle Abbildung von Master- und Content-Seiten.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/masterpages.asp
Navigation
Einige der neuen Steuerelemente helfen, eine einfach zu bedienende Benutzerführung zu erstellen. Am besten erstellen Sie eine web.sitemap-Datei. In dieser werden die Punkte gespeichert, die später im Menü angezeigt werden sollen. Das Menu-Steuerelement unterstützt vertikale, horizontale, dynamische und statische Darstellung. Mit dem Treeview-Steuerelement lassen sich dieselben Daten auch als Baum darstellen. Es genügt eine einfache Bindung an das SiteMapDatasource Control. Als weiteres Steuerelement hilft SiteMapPath, die aktuelle Position in der Web-Anwendung anzuzeigen.
http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/winfx/ref/ns/system.web.ui.webcontrols/c/sitemappath/sitemappath.asp
Themes
Mit Cascading Style Sheets (CSS) lässt sich eine Web-Anwendung auch nachträglich im Erscheinungsbild verändern. ASP.NET Themes erweitern dieses Konzept spezielle für die Web Server-Steuerelemente. Die Style-Definitionen werden dabei in Skin-Dateien im App_themes-Ordner gespeichert. Dabei kann im Zusammenspiel mit personalisierten Web-Seiten auch der Benutzer sein eigenes Wunsch-Theme auswählen.
http://msdn.microsoft.com/asp.net/beta2/ui/default.aspx?pull=/library/en-us/dnvs05/html/themes.asp
Authentifzierung
Egal, ob eine komplette Anwendung oder nur Teile davon geschützt werden sollen, es setzt immer voraus, den Benutzer zu authentifizieren. Mit ASP.NET 2.0 kommt nicht nur ein komplettes Login-Steuerelement sondern auch einige weitere zum Anlegen und Verwalten von Benutzern. Dabei sind die Controls nicht direkt an die Daten gebunden sondern werden durch eine Schicht davon unabhängig gehalten. Ein passender Membership Provider stellt die Verbindung zwischen Datenspeicher und der Visualisierung dar. Der Membership Provider wird in der web.config deklariert und kann später auch geändert werden. In der Version Beta 2 ist der Membership Provider für SQL Server enthalten und vorkonfiguriert für SQL Express 2005. Der Provider ist dabei so intelligent, dass beim ersten Aufruf sogar die Datenbank automatisch erzeugt wird. Dabei legt dieser die Datei aspnetdb.mdf ins App_Data-Verzeichnis.
http://msdn2.microsoft.com/library/f1kyba5e(en-us,vs.80).aspx
Personalisierung
Nachdem ein Benutzer authentifiziert ist, kann für ihn personalisierte Information bereitgestellt werden. Dabei kann der Benutzer teilweise die Web-Seite selber gestalten. So kann beispielsweise ein Theme ausgewählt werden oder der Benutzer bekommt programmatisch Daten zugewiesen. Letzteres lässt sich sehr einfach mit den neuen Profiles durchführen. Anders als in Session-Variablen können Daten in Profilen streng typisiert und dauerhaft gespeichert werden. Auch hier kommt das Provider-Konzept zum Einsatz, sodass potentiell auch hier jeder beliebige Datenspeicher verwendet werden kann.
Die Profilstruktur wird in der web.config-Datei im Bereich <profile> erstellt. Im Code kann dann auf die Eigenschaft des Profiles direkt lesend und schreibend zugegriffen werden.
Web Parts
Aus dem Firmen-Intranet ist die SharePoint-Technologie bereits bekannt. ASP.NET 2.0 erlaubt es jetzt ähnlich dem Sharepoint-Konzept, dynamische Web-Seiten durch Benutzer konfigurierbar zu machen. Der Benutzer kann nicht nur bestimmen, welchen Inhalt er sehen möchte, sondern auch an welcher Stelle im Browser der Inhalt positioniert sein soll.
Der Inhalt wird in so genannte Web Parts vom Entwickler gruppiert und in ebenso definierten Bereichen, den Zonen, abgelegt. Der Benutzer kann dann per Drag & Drop ein Web Part von einer Zone in eine andere verschieben. Die Position wird dank Membership in der Datenbank dauerhaft gespeichert.
Mike Fitz beschreibt in seinem Blog die Verwendung von Web Parts auch unter Berücksichtigung von Sharepoint.
http://blogs.msdn.com/mikefitz/archive/2005/03/17/397775.aspx
Datenzugriff
Datenoperationen sind mit ASP.NET 2.0 über weite Bereiche ohne klassischen Code möglich. Die nötigen Informationen werden per Deklaration in den Datensteuerelementen und damit in der ASPX-Seite abgelegt. Wichtiges Element dazu sind die neuen Datenzugriffs-Controls. Für jede Art von Datenquelle gibt es ein eigenes Steuerelement, wie etwa SqlDatasource oder AccessDatasource.
Die Darstellung der Daten erfolgt dann mit den neuen Steuerelementen wie GridView oder DetailsView. Ein visuelles Steuerelement wird jeweils an ein DataSource-Steuerelement gebunden. Im DataSource werden die Informationen wie Verbindungszeichenfolge, SQL-Kommandos und ähnliches hinterlegt. Das visuelle Steuerelement wie das GridView definiert dann Funktionalität und Design. Die Funktionen können dabei Blättern, Sortieren, Auswahl, Löschen oder Einfügen sein.
Außerdem ist es jetzt möglich, die Daten z.B. beim Blättern durch Caching zwischenzuspeichern.
Die Datenquellensteuerelemente bieten die gesamte Palette an SQL-Kommandos für Update, Insert, Delete und natürlich Select. Darüberhinaus kann die Datenmenge per Where-Klausel abhängig von Cookies, Form-Elementen, Querystrings und einigen mehr eingeschränkt werden. So lassen sich selbst Master-Detail-Darstellungen ohne Code realisieren.
In MSDN TV zeigt der Leiter des ASP.NET Teams, Scott Guthrie, die Möglichkeiten des Datenzugriffes.
http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040325aspnetsg/manifest.xml
Jede Menge Nützliches
Darüber hinaus bietet ASP.NET 2.0 viele kleinere Änderungen im Detail an. Bei Validatoren etwa sind nun Gruppierungen möglich. Formulareingaben lassen sich dank Crosspage Posting nun auch auf anderen Seiten verarbeiten. Was manchen als Remoting Scripting aus ASP-Zeiten bekannt ist, kommt nun als Script Callbacks wieder. Damit lassen sich Anfragen an den Server stellen und dessen Rückgabe verarbeiten, ohne die aktuelle Seite im Browser zu verlassen. Der Benutzer merkt davon nichts, da das übliche Postback entfällt.
Fragen und vor allem Antworten zu ASP.NET findet man in den englischsprachigen ASP.NET-Foren.
http://forums.asp.net/default.aspx?ForumGroupID=26
ASP.NET 2.0 Crashkurs
Ganz aktuell ist das Buch ASP.NET 2.0 Crashkurs bei Microsoft Press erschienen. Für Euro 29,90 erhalten Sie vom Autor Hannes Preishuber ca 300 Seiten und eine DVD mit Visual Studio 2005 Beta 2.
http://www.edv-buchversand.de/mspress/product.asp?cat0=33&idx0=4&cat1=38&idx1=4&cnt=product&id=ms-532&lng=0