ASP.Net 2.0: Power für Webentwickler
Artikel erschienen in Swiss IT Magazine 2005/07
Den zweiten Teil unserer vierteiligen Serie zum .Net Framework 2.0 und Visual Studio 2005 widmen wir ASP.Net 2.0 und ADO.Net 2.0. Bei den Neuerungen der beiden Technologien steht vor allem erhöhte Entwicklerproduktivität, bessere Performance und einfachere Administration im Vordergrund. Microsoft spricht beispielsweise davon, dass sich der Code, der bei ASP.Net künftig noch von Hand geschrieben werden muss, mit der neuen Technologie um bis zu 70 Prozent reduzieren wird. Ob das bei jeder Art von Applikation so sein wird, wagen wir zu bezweifeln. Mit Sicherheit werden aber die Features das Leben der Webentwickler um einiges erleichtern.
Die Basis von ASP.Net 2.0 bildet eine Reihe von vorgefertigten Bausteinen und APIs, um Standardfunktionen wie rollenbasierte Sicherheit, Personalisierung oder Konfigurationsmanagement mit einem Minimum an Codeaufwand implementieren zu können.
Wohl einer der interessantesten neuen Bausteine ist das Membership API. Eine Webanwendung mit einem Benutzermanagement und geschützten Bereichen auszustatten, wird damit zum Kinderspiel. Auf der Front-end-Seite braucht man bloss die vorgefertigten Web Controls wie Login, Logout, Benutzer-Status oder Passwort-Reminder auf den ASP.Net-Webform zu plazieren. Auf der Back-end-Seite kann über eine offene Provider-Architektur eine neue oder schon bestehende Benutzer-Datenbank an die Membership-Funktion von ASP.Net angebunden werden. Standardmässig werden Provider für SQL Server und Access mitgeliefert. Das offene Modell erlaubt es aber auch, Provider für eigene Datenbanken und Directory-Services zu schreiben.
Nach ähnlichem Muster funktionieren andere Bausteine wie etwa die Navigation (SiteMap), die Personalisierung oder die Konfiguration. Auch hier können die Funktionen mit geringem Aufwand in die eigene Applikation integriert und über das Providermodell auf in einer Datenbank oder XML-Datei abgelegte Daten zugegriffen werden (siehe auch Diagramm «Die ASP.Net 2.0-Architektur»).
Mit Version 2.0 erhält ASP.Net nun ein echtes Page Framework mit Vorlagen-Technologie, Themes- und Skinnig-Funktionen sowie verbesserten Möglichkeiten bei der Lokalisierung von Applikationen. Für den Umgang mit Vorlagen hat Microsoft bei ASP.Net 2.0 auf die Master Pages zurückgegriffen. Dieses Verfahren, das in inoffizieller Form bereits als Workaround für ASP.Net 1.x zur Verfügung stand, wurde nun in überarbeiteter Version fest in ASP.Net 2.0 integriert. Die Master Pages erlauben es auf elegante Weise, bestimmte Seitenbereiche wie etwa Header, Fusszeilen oder Menüs auf der gesamten oder Teilen der Site wiederholen zu lassen. Dazu werden die gewünschten Standard-Elemente auf einer als Master Page deklarierten ASP.Net-Seite plaziert. Von dieser lassen sich beliebig viele ASP.Net-Seiten ableiten, die dann automatisch über die Elemente der Masterseite verfügen. Auf Wunsch können die vordefinierten Platzhalter der Master Page in der abgeleiteten Seite übersteuert werden.
Zum neuen Page Framework zählt auch die Unterstützung von Themes und Skins. Über Skins lassen sich für ASP.Net Controls unterschiedliche Formatierungsvarianten definieren. Diese können gemeinsam mit anderen Formatierungselementen wie Grafiken oder Style Sheets in Themes zusammengefasst werden. Themes und Skins erlauben nicht nur, das gesamte Design einer Website an zentraler Stelle zu regeln, sondern ermöglichen auch das Definieren von unterschiedlichen Stilvorlagen, die sich ganz einfach per Knopfdruck austauschen lassen.
Microsoft plant, ihre Portal-Technologie zu vereinheitlichen. Zu diesem Zweck wird das aus den Windows SharePoint Services (WSS) bekannte WebPart-Framework in ASP.Net 2.0 integriert. Ähnlich wie in SharePoint werden die Seiten einer Site in verschiedene Zonen (Spalten, Header etc.) eingeteilt, die sich dann beliebig mit WebParts und Controls bestücken lassen. Das Interessante dabei ist, dass Website-Benutzer die WebParts einer Seite selber verschieben sowie ein- und ausblenden können. Künftige Versionen der Windows SharePoint Services und andere Portal-basierte Produkte wie der Content Management Server oder der Commerce Server werden auf dem WebPart-Framework von ASP.Net 2.0 aufsetzen. Demnach wird man mit ASP.Net geschriebene WebParts und Controls viel einfacher zwischen Microsofts Portal-Produkten und eigenen Webseiten austauschen und wiederverwenden können.
In ASP.Net 2.0 wird der Umgang mit Daten noch einmal wesentlich einfacher werden. Dafür sorgen unter anderem die neuen DataSource Controls. Statt Datenzugriffe via Code-Behind mit C# oder Visual Basic programmieren zu müssen, lassen sich die notwendigen Parameter (Connection String, SQL Statements, Caching, Filtering etc.) direkt in den ASP.Net Tags der Webseite deklarieren. Geplant sind DataSource Controls für SQL-Datenbanken (via OLE-DB oder ODBC), Access und XML. Weitere Controls etwa für Web Services, Excel oder den Index Service sind in Planung. Um auch die Ausgabe von Daten am Bildschirm zu vereinfachen, wird ASP.Net 2.0 mit den zwei neuen Controls GridView und DetailsView ausgerüstet sein. Das GridView Control verfügt im Gegensatz zu seinem Vorgänger (DatenGrid) über eingebaute Sortier-, Paging- und Filterfunktionen, die sich ohne eigenes Coding nutzen lassen. Das DetailsView Control ist für das Anzeigen von einzelnen Datensätzen gedacht und bietet fest integrierte Funktionen wie Blättern, Editieren oder Löschen.
ASP.Net 2.0 kommt mit einer eigenen Management Console, die als MMC-Snap-in oder via Web-Interface genutzt werden kann. Bislang mussten solche Einstellungen von Hand in den XML-Ästen der web.config-Datei vorgenommen werden. Interessant ist auch das neu integrierte Management-API, mit dem sich die Daten in den Konfigurationsfiles von ASP.Net und IIS 6.0 direkt aus dem Programmcode heraus manipulieren lassen.
Interessant sind auch die neuen Kompilier-Varianten Dynamic Compilation und Pre Compilation. Erstere erlaubt es, den Sourcecode (z.B. die Klassen eines Business Layer) beim ersten Aufruf einer ASP.Net-Site automatisch mitkompilieren zu lassen. Pre Compilation hingegen ermöglicht es, eine ASP.Net-Anwendung vor dem Deployment vollständig kompilieren zu lassen. Die aus der On-the-fly-Kompilierung resultierende Performance-Einbusse beim ersten Aufruf einer ASP.Net-Seite wird dadurch eliminiert. Die aus der Pre Compilation erzeugte DLL kann neben den Codedateien auch alle notwendigen ASPX-Dateien enthalten und lässt sich dadurch bequem auf den Webserver kopieren. Vor allem in Hosting- oder Lizenzierungs-Szenarios hilft dieses Feature, ASP.Net-Anwendungen gegen unerwünschte Veränderungen und Codeklau zu schützen.
Nicht nur ASP.Net, sondern auch die ADO.Net hat umfangreiche Neuerungen erfahren. Glücklicherweise hat Microsoft diesmal darauf verzichtet, ihre Datenzugriffs-API komplett umzukrempeln. Statt dessen handelt es sich beim Objektmodell von ADO.Net 2.0 um eine rückwärtskompatible Erweiterung des Vorgängers. Zu den vielen Neuerungen zählen beispielsweise die binäre Serialisierung von DataSets, integriertes Paging oder die Bulk-Copy-Funktion, um Daten zwischen zwei Datenquellen kopieren zu können.
Ein weiterer umfangreicher Schwerpunkt von ADO.Net 2.0 ist die Unterstützung für die Neuerungen von SQL Server 2005. Dazu gehören etwa die automatische Mitteilung, wenn gecachte Daten in der Datenbank geändert wurden, oder die Multiple Active Result Sets (MARS), die es erlauben, pro Datenbank-Verbindung mehrere Abfragen durchzuführen und verschiedene Resultat-Sets im Speicher pendent zu halten.
Die Möglichkeiten mit dem Umgang von XML wurden in ADO.Net stark verbessert. Grundsätzlich lassen sich alle Funktionen, die für ein DataSet zur Verfügung stehen, neuerdings auch auf XML Dokumente anwenden. Umgekehrt lässt sich mit XML Views ein Mapping auf relationale Daten erstellen. Diese lassen sich dann genauso wie ein XML-Dokument anzeigen und bearbeiten.