13 Jan
2006

Intellisense in der Web.config für Visual Studio 2005 erweitern

 

Dass das Visual Studio 2005 eine hevorrangende Intellisense Unterstützung für so gut wie alle Bereiche hat ist unbestritten. Und ich denke niemand will diese missen. Für Xml-Dateien, wie auch für die web.config eine ist gibt es in im [i]%VSIntallDir%/xml/schemas[/i] Verzeichnis eine Menge hinterlegte Schema-Dateien. Welche davon verwendet werden ist in der catalog.xml festgelegt. Nun kommt jeder Entwickler sicherlich mal die Situatation die Konfigurations-Dateien erweitern zu müssen. Wenn <appSettings/ > nicht unbedingt praktisch ist da die Einstellungen doch etwas komplexer ausfallen. Oder man muss andere Konfigurations-Erweiterungen verwenden. Leider erkennt Visual Studio diese Bereiche nicht automatisch und bietet somit auch kein Intellisense dafür an. Möchte man Intellisense auch dort nutzen muss man selbst ran und an den Einstellungen drehen. Ich stelle hier drei Varianten vor wie man dies machen kann.

1. Über einen Xml-Namespace

Jetzt kann man sich eine eigene Schema-Datei erstellen die das Konfigurations-Format beschreibt, und der [i]catalog.xml[/i] hinzufügen. Einfach die Schema-Datei ablegen wo Visual Studio sie finden kann und einen <Schema />-Eintrag hinzufügen. [xml] [/xml]Der Target-Namespace ist der Xml-Namespace mit dem man das Konfigurations-Schema anspricht. In der Web.config bindet man die Konfiguration-Erweiterungn wie es die Assembly oder Anwendungen vorschreibt (wohl <configSection/>) in ebendiese ein. Der [i]Trick[/i] besteht nun darin diesen Xml-Namespace beim erstellen des Konfigurationseinträge beim Haupt-Tag über das [b]xmns-Attribute[/b] anzugeben. [xml] [....die Schema-Definition...] [/code] Diese Schema-Datei kopiert man nun einfach in sein Projekt, bei einem Web-Projekt in einen beliebigen Ordner (z.B. [i]xsd[/i]). Für eine Solution/Projektmappe reicht es aus wenn die Datei in einem Projekt vorhanden ist. Und schon kann die Schema-Datei über den Xml-Namespace angesprochen und volles Intellisense erfreut die Eingabe. [code] [/code] Die Qualität der Intellisense hängt natürlich von der Qualität der Schema-Datei ab. Für mich ich dies die bevorzugte Lösung, da sie einfach sofort auf jedem Rechner zu Verfügung steht bei denen das Projekt aus der Quelltextverwaltung ausgecheckt wird. Auch ist ohne großes von globalen Konfigurationsdateien möglich, so das die Gefahr des [i]Stilllegen[/i] von anderen Funktionen im Visual Studio nicht so leicht passieren kann. Auch das nur die für das Projekt benötigten Intellisense-Daten dabei sind, empfinde ich als Vorteil.

Fazit

Welche Lösung man bei der Anwendung bevorzugt bleibt einem wie immer selbst überlassen. Es hängt erstmal an den Entwicklern passende Schema-Dateien für Konfiguration zu erstellen und mit auszuliefern. Ein Projekt ([b]UrlRewritingNet[/b]) welches als Beispiel dienen kann für [list][*]Einlesen von eigenen Konfigurations-Bereichen mit .NET 2.0 [*]Ausführlicher Schema-Datei [*]Einbindung in das Projekt nach Variante 3 [*]Mit nützlicher Anwendung [/list] wird in den nächsten Tagen auf der Projekt Seite von [b]UrlRewritingNet[/b] [2] veröffentlicht, eine hervorragende Rewriting-Engine für ASP.NET 2.0 die Thomas Bandt und ich derzeit am entwickeln sind
[1] [url=http://blogs.msdn.com/dmitryr/archive/2005/12/07/501365.aspx]SCDL 1.1[/url] [2] [Letzter Rasthof vor Rom: URL-Rewriting mit ASP.NET
Der Eintrag ist mir etwas Wert
 
Comments have been closed on this topic.