Sitemaps in ASP.NET: Grundlage für ein problemloses Navigieren

(http://www.zdnet.de/magazin/39158814/sitemaps-in-asp-net-grundlage-fuer-ein-problemloses-navigieren.htm)

von Tony Patton, 15. November 2007

Das .NET-Framework bietet Steuerelemente, mit denen sich Navigationsfunktionen leicht in eine Website integrieren lassen. Der Artikel beschreibt Funktionsweise, Verwendung und Interaktionmöglichkeiten des SiteMap-Steuerelements.

Das Festlegen der logischen Struktur einer Website bildet den Ausgangspunkt für das Erstellen der Navigationselemente. ASP.NET 2.0 vereinfacht das Anfertigen solcher Steuerelemente mit dem Webserver-Steuerelement SiteMap sowie verwandten Navigations-Steuerelementen. In älteren Versionen von ASP.NET verschlang dieser einfache Prozess noch sehr viel Entwicklungszeit.

Sitemaps repräsentieren die logische Struktur

Einfache Webanwendungen gibt es heutzutage eigentlich kaum noch. Häufig bestehen sie aus zahlreichen Seiten und weisen eine komplexe Struktur auf.

Ein gutes Beispiel ist die ZDNet-Website: Sie besteht aus einer Homepage und verschiedenen Bereichen für Downloads, Foren, Shopping und vieles mehr. Die logische Struktur einer Website wird häufig als deren Sitemap bezeichnet. Sobald diese Struktur festgelegt ist, kann man sich an die Navigationsstruktur der Website machen.

Das XML-Format von ASP.NET-Sitemaps

Seit Version 2.0 ermöglicht ASP.NET das Festlegen einer Anwendungsstruktur über das Webserver-Steuerelement SiteMap. Zwar hat die Web-Community einen Sitemap[1]-Standard entwickelt, an dem auch Microsoft mitgewirkt hat, aber Microsoft selbst verwendet ein eigenes Format.

Die Sitemap wird in einer separaten Datei definiert. Das Standardformat für diese Datei ist XML. Doch eigene Sitemap-Provider können auch so entworfen werden, dass sie ein anderes Format verwenden.

In diesem Artikel wird das standardmäßige XML-Format verwendet. Die Sitemap-Datei heißt Web.sitemap. Bei einer einfachen Website sollte man diese Datei im Stammverzeichnis der Anwendung abspeichern. Natürlich kann eine Website neben mehreren web.config-Dateien auch mehrere Sitemap-Dateien verwenden. Diese Art von Datei lässt sich beispielsweise mit einem Texteditor erstellen. Wird Visual Studio verwendet, fügt man einer Webanwendung eine Sitemap hinzu, indem unter "Add New Item" die Option "Site Map" ausgewählt wird. Der folgende Code verdeutlicht das Format für eine Sitemap-Datei, wie sie häufig in Webprojekten zu finden ist:

Es fällt auf, dass die XML-Namespace-URL für eine ASP.NET-Sitemap Microsoft-spezifisch ist. Die Datei enthält das Wurzelelement siteMap, das die komplette Sitemap umfasst. Innerhalb dieses Wurzelknotens legen siteMapNode-Elemente die einzelnen Bereiche der Sitemap fest. Ein einzelner Sitemap-Knoten kann entweder keine oder auch mehrere untergeordnete Sitemap-Knoten enthalten. Diese können wiederum ebenfalls keine oder mehrere untergeordnete Sitemap-Knoten beinhalten, und so weiter. Jeder Sitemap-Knoten unterstützt die folgenden Attribute:

Normalerweise enthalten SiteMapNode-Elemente drei Attribute: url, title und description. Das folgende Listing ist eine Sitemap-Datei für eine Beispiel-Website mit nur drei Seiten:

Zugang über C#- und VB.NET-Code

Der System.Web-Namespace enthält die Klasse SiteMap, die dem Sitemap-Feature von ASP.NET entspricht. Sie ist eine speicherresidente Darstellung der Navigationsstruktur für eine Website. Die Klasse erlaubt den Zugriff auf die einzelnen Elemente innerhalb einer Sitemap. Die beiden wichtigsten und am häufigsten verwendeten Eigenschaften der Klasse sind CurrentNode und RootNote.

Das folgende Beispiel in C# leitet einen Benutzer mithilfe der CurrentNode-Eigenschaft der SiteMap-Klasse auf die übergeordnete Seite der aktuellen Seite:


Response.Redirect(SiteMap.CurrentNode.ParentNode.Url);

Sowohl die CurrentNode- als auch die RootNode-Eigenschaft der SiteMap-Klasse geben eine Instanz der SiteMapNode-Klasse aus, welche die folgenden Eigenschaften und Methoden für die Navigation innerhalb des Sitemap-Baumes mitbringt.

Der folgende C#-Code einer ASP.NET-Seite durchläuft eine Sitemap und zeigt Titel und URL für jeden Knoten an, wenn die Seite geladen wird:

Der entsprechende VB.NET-Code sieht so aus:

Ausblick

Die Sitemap ist die Grundlage für die Verwendung der Navigations-Steuerelemente, die in ASP.NET 2.0 verfügbar sind. Die Sitemap wird als Datenquelle für die Navigations-Steuerelemente verwendet. Diese Navigations-Steuerelemente sind beispielsweise Menu, SiteMapPath und TreeView.

URLs in diesem Artikel:
[1] = http://www.sitemaps.org/