16.06.2005, 10:06 Uhr

Webnavigation mit ASP.NET 2.0

Mit ASP.NET in der Version 2.0 werden spezielle Controls und Klassen mitgeliefert, um dem Entwickler die Erstellung von Webanwendungen zu erleichtern.
Der Benutzer erwartet heute viel von einer Website. Ist diese unübersichtlich und sind die nötigen Informationen somit schlecht zu finden, ist der Kunde schnell wieder weg. Für Webanwendungen haben sich heute ungeschriebene Standards zur Benutzerführung etabliert. Diese unterscheiden sich aber durchaus von üblichen Windows-Anwendungen. Im Ergebnis ist es für den Anwender damit möglich, ohne Schulung eine Website zu nutzen.

Der Standard

Wer bisher schon Webanwendungen erstellt hat, zum Beispiel mit ASP (Active Server Pages), wird eventuell Technologien wie Frames und SSI (Server Side Includes) verwendet haben. Diese kann man heute als überholt betrachten. ASP.NET bietet mit Master Pages und User Controls ein wesentlich leistungsstärkeres und einfacheres Konzept. Die Details dazu würden aber den Rahmen dieses Artikels sprengen.
Für die Benutzerführung in einer Webanwendung sind drei Elemente notwendig. Mit einem Menü erhält der Benutzer schnellen Zugriff auf Unterseiten. Menüs befinden sich wie auch bei Windows Anwendungen, meist am oberen Bildschirmrand. Mit einer Baumdarstellung (Treeview) wird auf grössere Informationsmengen strukturiert zugegriffen. Die Baumdarstellung erlaubt eine schnellere Auswahl von Zielseiten, auch wenn sie sich in der Hierarchie mehrere Ebenen unterhalb befinden. Durch Auf- und Zuklappen von Zweigen (Nodes) behält man trotzdem die Übersicht. Aus Platzgründen wird ein Treeview fast immer links platziert. Outlook ist hierzu ein Beispiel. In Windows-Anwendungen dagegen beinahe unbekannt ist das dritte Element, die Breadcrumbs. Schon Hänsel und Gretel wollten diese verwenden, um den Weg zurück zu finden. In Webseiten werden dabei in einer Zeile die Seiten, die sich in der Hierarchie oberhalb befinden, als Hyperlink dargestellt. Diese Funktion wird in ASP.NET 2.0 mit dem SitemapNavigationPath Control realisiert. Platziert wird dieses Control meist unterhalb des oberen Menüs.

Steuerung mit XML

Die Definition der Navigation wird in der Datei web.sitemap festgelegt. Diese Datei basiert auf dem XML Standard. Ein späterer Menüpunkt wird durch ein SitemapNode-Elemente definiert. Die Schachtelung kann dabei in beliebiger Tiefe erfolgen. Das Attribut URL definiert die Adresse der Zielseite. Angezeigt wird der Inhalt des Titels und per Tooltipp der Inhalt des description Attributes.

Visualisierung

Für die Darstellung dieser Daten werden zwei Web Server Controls benötigt. Mit dem SiteMapDatasource Control wird die Verbindung zur XML-Datei erstellt. Mit dem Menu Control wird letztendlich das Menü erzeugt. Dabei lassen sich bereits vorhandene Designvorlagen auswählen oder auch komplett eigene Designs erstellen. Die Darstellung kann dann horizontal oder vertikal gewählt werden. Im Browser sieht der Benutzer das SiteMapDataSource Control nicht (Screen 1). Besonders interessant ist, dass der komplette JScript-Code automatisch und für den Browser passend generiert wird. So können selbst aufwändige Funktionen wie DropDown-Menüs erzeugt werden, ohne eine Zeile Code selbst zu schreiben. Tooltips zeigen erweiterte Informationen zu den einzelnen Menüpunkten an. Anhand des Pfeilsymbols kann der Benutzer erkennen, dass im Menü unterhalb weitere Punkte wählbar sind (Screen 2).
Wenn man sich nun für eine Baumdarstellung der Menüdaten entscheidet, muss nur das Menu Control gegen das Treeview Control getauscht werden. Dabei kann aus zahlreichen Designs ausgewählt werden. Damit werden auch gleich die passenden Icons mit eingebunden (Screen 3).
Noch einfacher ist die Verwendung des SiteMapPath Controls. Es genügt, dieses Control per Drag&Drop aus der Werkzeugleiste von Visual Studio 2005 in das Web-Formular zu ziehen (Screen 4). Die Verbindung zur Sitemap wird dabei automatisch hergestellt. Es ist trotzdem möglich, durch Ändern der Konfiguration in der Datei Web.Config alternative Sitemap-Dateien einzubinden. Dank des ASP.NET-Provider-Modells kann man sogar gänzlich andere Datenquellen zur Generierung einer Sitemap heranziehen. Dabei ist lediglich die StaticSiteMapProvider-Basisklasse in eine eigene Provider-Klasse zu vererben. Um den so erstellen SiteMapProvider in das SiteMapDatasource Control einzubinden ist dann nur noch ein Eintrag in der Sektion Providers der Web.Config-Datei zu ergänzen.
Das klingt zwar relativ aufwändig, ist es aber in der Praxis nicht. Als Ergebnis lässt sich auf diese Art und Weise jederzeit die Verwaltung der Navigationsinformation ändern, ohne in den eigentlichen Programmcode eingreifen zu müssen.

Sicherheit

Nicht nur für Navigation gibt es einen Pro-vider. Das Provider-Konzept findet sich -flächendeckend in ASP.NET. -Einer der wichtigsten Provider ist der Membership Provider, mit dem sämtliche Sicherheitsbelange von Webanwendungen abgedeckt werden. Das Membership- und das Navigations Provider-Konzept überschneiden sich sogar leicht. In der Sitemap-Datei können durch das zusätzliche Attribut roles eine oder mehrere Rollen aus dem Membership-System zugewiesen werden.

description="Kunden verwalten">

Wenn ein authentifizierter Benutzer dieses Menu oder Treeview Control im Browser betrachtet, werden nur die Punkte angezeigt, für die er auch die entsprechende Berechtigung besitzt.

Mehrsprachigkeit

Ganz ähnlich lässt sich mit dem Sitemap Provider-Modell die Navigation auch mehrsprachig gestalten. Im Element SiteMapNode der Sitemap-Datei wird das zusätzliche Attribut resourceKey mit einem Schlüsselnamen versehen. Die Werte zu den Schlüsseln werden in einer Ressourcendatei verwaltet. Die Ressourcendatei besitzt ebenfalls ein XML-Format und wird im Verzeichnis App_globalresources gespeichert.
Für jede unterstützte Sprache wird dann eine Ressourcendatei erzeugt. Dabei wird die CultureID als Namensbestandteil verwendet. Die französischen Beschreibungstexte beispielsweise werden dann in web.sitemap.fr.resx gespeichert. ASP.NET erkennt beim Aufruf einer Webseite anhand der gesendeten Header-Informationen die Landessprache und weist den Text automatisch zu. Auch dafür muss keine Zeile Code mehr geschrieben werden.

Umleitungen

Auch die beste Navigation ändert sich von Zeit zu Zeit. Eventuell haben die Benutzer aber in den Favoriten einen Hyperlink abgespeichert. Um einen Aufruf zu verhindern, kann man in der Datei Web.Config statische Umleitungen hinterlegen. Wenn nun ein Benutzer eine Seite aufruft, wird er automatisch auf eine andere Seite umgeleitet. Dies wäre natürlich in der einzelnen ASPX-Seite auch direkt möglich, aber aufwändiger. In der Datei Web Config lässt sich das zentral steuern.

url="~/kunden.aspx"

mappedUrl="~/neuekunden.aspx" />

url="~/Autos.aspx"

mappedUrl="~/Default.aspx?id=autos" />

Noch Fragen?

Nicht nur die Navigation, auch andere Funktionen von ASP.NET 2.0 sind praktisch und nützlich. Leider befindet sich das Produkt erst in der Beta 2-Phase. Trotzdem könnte sich der Umstieg heute schon lohnen. Dank Go-Live-Lizenz sind die rechtlichen Voraussetzungen vorhanden.

Literatur

ASP.NET 2.0

Hannes Preishuber


Das könnte Sie auch interessieren