ASP.NET Sitemap Editor

ASP.NET Sitemap english Version 

Der Inhalt dieser Seite hat recht wenig mit Exchange zu tun und viel mehr mit ASP.NET und dem Sharepoint Designer (ExpressionsWeb / Sharepoint Designer) bzw. Frontpage. Sie beschreibt, wie Sie die Funktion der Sitemaps in ASP.NET einfach mit dem grafischen Designer von Frontpage oder Sharepoint Designer erstellen können. Bislang gibt es nach meinem Wissen kein anderes Hilfsprogramm, so dass vermutlich sehr viele ASP.NET-Entwickler ihre Sitemap mühsam manuell mit Notepad oder einem XML-Editor erstellen.

Navigation und Sitemap

Frontpage als auch der neue Sharepoint Designer 2007 können eine Funktion, die logische Struktur einer Webseite grafisch zu pflegen, ohne auf die physikalische Struktur auf dem Webserver oder dem Dateisystem Rücksicht nehmen zu müssen.

Frontpage/SPD Sitemap

Leider ist diese Funktion nicht in Expression Web enthalten, welches aber laut Microsoft die Anwendung zur Erstellung von ASP.NET-Webseiten sein soll. Vielleicht ändert das später einmal. Die Navigation wird aber leider nicht direkt als ASP.NET-Sitemap abgespeichert sondern in einer etwas kryptischen Datei Structure.cnf. (Siehe auch FrontPage Struktur).

ASP.NET und Sitemaps

Eine ganz nette Funktion bei der Entwicklung einer Webseite mit ASP.NET ist die Möglichkeit mit Sitemaps zu arbeiten. Diese XML-Dateien tragen die Erweiterung ".sitemap" und werden vom Webserver nicht an den Client zugestellt. Statt dessen kann man mit den entsprechenden ASPX-Komponenten daraus dynamisch eine "Breadcrumb", ein Tree-Menü oder auch ein dynamisch aufklappendes Menü in seine Webseiten einbauen.

Leider überlässt es Microsoft den Webseitenentwicklern, dieses Menü manuell zu erstellen. Einen Editor dafür habe zumindest ich noch nicht gefunden. Wer aber etwas grafisch anspruchsvollere Webseiten pflegen will, wird allein mit Visual Studio nicht zufrieden sein und den eigentlichen HTML-Code mit Programmen wie Frontpage 2003, Expression Web oder den Sharepoint Designer entwerfen. Aber nur Frontpage und der Sharepoint Designer erlauben auch die Pflege von "Navigationsstrukturen", die Allerdings in der Datei "_vti_pvt\structure.cnf" abgespeichert werden und damit nicht von ASP.NET genutzt werden können.

ASP-Sitemap-VBA Makro Download und einrichten

DA sowohl Frontpage als auch der Sharepoint Designer eigene VBA-Programme unterstützen, lag der Schritt auf der Hand, über ein VBA-Makro und das Navigationsobjekt und dem XML-Objekt ein kurzes Makro zu schreiben, welches aus der Navigation eine "web.sitemap" erstellt. Laden Sie sich einfach die folgende TEXT-Datei herunter und speichern diese auf der Festplatte ab.

aspnetsitemap.bas.txt

ändern Sie dann die Erweiterung von .TXT auf .BAS. Wie mit VBA-Makros üblich ist der Code "lesbar" und natürlich auch veränderbar. Dies ist immer dann notwendig, wenn die Standardeinstellungen nicht für ihre Umgebung passen. Das VBA-Makro legt immer in der Wurzel des aktuell geöffneten Webs eine neue Datei "web.sitemap" an. Eine bestehende Datei wird ohne Rückfrage überschieben.

Starten Sie nun den Makro Editor (ALT-F11) und importieren Sie die BAS-Datei über das Menü "Datei - Datei importieren"

VBA-Makroeditor

Das Makro erscheint nun im Fenster als neues Modul. Zum Start stellen Sie den Cursor einfach auf den Eintrag "Sub ASPSiteMap()" und drücken in der Taskleiste das "PLAY"-Symbol.

Run Makro

Wenn alles korrekt läuft, dann sehen Sie unten im "Direktbereich" die Aktivitäten des Makros mit der Bestätigung, dass die web.sitemap geschrieben wurde.

Hinweis:
Das Makro ist nicht an eine Webseite gebunden sondern an Frontpage bzw. Sharepoint Designer. Sie können das Makro mit jeder geöffneten Webseite aufrufen.

Zur Geschwindigkeit: Diese Webseite MSXFAQ hat über 900 Seiten in bis zu 4 Ebenen, wie Sie auf Sitemap einfach einsehen können. Das Makro erstellt die XML-Datei auf einem langsamen Notebook in wenigen Sekunden, wenn die Navigation bereits im Speicher geladen ist. Aber selbst im ungünstigsten Fall dauert der Prozess weit unter einer Minute. Allerdings müssen Sie bei der Änderung ihrer Navigation natürlich daran denken, das Makro erneut zu starten

Ablauf einer Weberstellung

Wenn ich aktuell mit ASP.NET an einem Web arbeite, dann durchlaufe ich folgende Schritte.

  • Web mit Visual Studio Web Edition Express anlegen
    Natürlich kann ich auch mit dem Sharepoint Designer oder anderen Dingen ein Web anlegen, aber über den Assistent mit Visual Studio (oder der Web Developer Express Edition) kann ich aus einer Vorlage wählen (z.B.: mit AJAX) und auch schon ein paar Verzeichnisse etc. anlegen, so dass die Entwickler hinterher nicht ein schönes Web vom Designer erhalten, welches aber erst noch umstrukturiert werden muss.
  • Web Design und Layout
    Nun ist der Designer an der Reihe, mit Expression Blend oder anderen Programmen schöne Icons zu entwerfen und mit dem Sharepoint Designer den HTML-Code, die CSS-Stylesheets etc. zu zu erstellen. Wer fließend HTML und XML spricht, wird sicher auch mit Visual Studio eine Webseite erstellen können Aber Frontpage und noch mehr der Sharepoint Designer sind viel besser für das grafische Aufbereiten einer Webseite. Hier kann der Webdesigner dann einfach eine Masterpage entwerfen. Auch die eigentlichen Seiten mit den Formularen, Controls und die Sitemap kann der Designer erstellen.
    Die Navigation konvertiert er zum Schluss mit dem VBA-Makro in einer Sitemap.
  • Code durch Visual Studio
    Dann muss die Entwicklung einfach die Hülle mit Code füllen. Das hört sich einfach an, aber ist natürlich auch nicht gerade ein Pappenstiel

Letztlich muss natürlich jeder selbst wissen, wie er seine Webseite pflegt.  Wie die MSXFAQ gepflegt wird, können Sie auf Backstage nachlesen. Mir helfen einige VBA-Skripte bei der automatischen Erstellung und Pflege der Seiten und Links

Wünsche für die nächste Version

Wenn ein Produktmanager von Microsoft diese Seite nun gelesen hat, dann wird er sich sicher vorstellen können, was ich mir wünsche.

  • Navigation in Expression Web
    Die Pflege einer Navigationsstruktur ist aktuell leider nur mit Frontpage oder dem Sharepoint Designer möglich. In Expression Web ist diese aus meiner Sicht wichtige Funktion nicht vollständig implementiert. Anscheinend ist der dazu erforderliche Code schon noch zum großen Teil da, aber nicht vollständig, um das VBA-Makro zu nutzen
  • Direkte Speicherung als web.sitemap
    Natürlich wäre es viel besser wenn die nächste Version von Expression Web nicht mehr die "structuve.cnf" sondern direkt eine web.sitemap als Speicherort anlegt. Dann ist das VBA-Makro ebenfalls komplett überflüssig und vor allem muss der Entwickler nicht daran denken bei der Veränderung der Navigation das Makro zu starten.

Weitere Links