This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: Visual Studio Templates erstellen
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Visual Studio wird bereits mit jeder Menge Templates ausgeliefert, die es uns Entwickler ungemein erleichtern, Projekte oder einzelne Dateien zu erstellen. Ohne diese Templates wäre der Aufwand, ein Projekt einzurichten wohl ein wesentlich größerer Bestandteil unserer Arbeit. Dieser Artikel zeigt, wie schnell und einfach Templates für einzelne Dateien eingerichtet werden können, um sich zukünftig einige Arbeitsschritte zu ersparen.
Wann lohnt sich ein Template?
Templates sind immer dann sinnvoll, wenn im gleichen Projekt (oder auch unterschiedlichen Projekten) häufig dasselbe Grundgerüst eingefügt werden muss. Ein Beispiel.
In vielen Anwendungen wird ein Logging-Framework verwendet, um Informationen während der Laufzeit zu erfassen (Statusmeldungen, Debug-Informationen, Fehlermeldungen usw.). Um in eine Klasse mit inkludiertem Logger zu erhalten müssen einige Schritte vollführt werden:
Neue Klasse anlegen
Referenz auf Logging-Framework setzen
Logger instanzieren
Mit der Anzahl der erstellten Klassen, welche den besagten Logger nutzen, steigt auch der dafür benötigte Aufwand. Das mag vielleicht auf den ersten Blick als gering abgetan werden. Nehmen wir für die genannten Schritte eine notwendige Zeit von ca. 20 Sekunden an erscheint dies wirklich gering zu sein. Selbst kleinere Projekte inkludieren recht schnell 100 Klassen (die für ein Logging relevant sind). Der Aufwand dafür läge nun schon bei über 30 Minuten. 30 Minuten, die man für wichtigere Aufgaben verwenden kann, als eine Klasse inklusive Logger zu erstellen (zumal immer wiederkehrende Aufgaben ermüdend und nervig sind). Ein Template hierfür rechnet sich also. Analysiert man seine tägliche Arbeit, ergeben sich sehr viele Möglichkeiten, die die Erstellung eines Templates rechtfertigen würden.
Basiswissen
Templates werden von Visual Studio verwendet, um sogenannte Vorlagen zur Verfügung zu stellen. Diese Vorlagen definieren, wie vordefinierte Projekte (ProjectTemplates) und einzelne Dateien (ItemTemplates) auszusehen haben. Die Standard-Templates für die beiden genannten Typen sind in folgenden Verzeichnissen zu finden:
ProjectTemplates
<programs directory>\Common7\IDE\ProjectTemplates
ItemTemplates
<programs directory>\Common7\IDE\ItemTemplates
Um die Standard-Templates von den eigenen zu trennen, befinden sich in den Eigenen Dateien des jeweiligen Benutzers ebenfalls entsprechende Verzeichnisse. Im Falle von Visual Studio 2008:
ProjectTemplates
<Eigene Dateien>\Visual Studio 2008\Templates\ProjectTemplates
ItemTemplates
<Eigene Dateien>\Visual Studio 2008\Templates\ItemTemplates
Wird eine andere Version verwendet, ändert sich entsprechend der Pfad (für Visual Studio 2005 wird aus 2008 2005 usw.).
Jedes dieser Templates ist in einer ZIP-Datei abgelegt, welche in einen Cache-Ordner (ProjectTemplatesCache bzw. ItemTemplatesCache) entpackt und gelesen werden. Dies kann auch ein Grund sein, dass Änderungen an einem Template nicht sofort in Visual Studio verfügbar sind.
In jeder Zip-Datei muss eine Datei mit der Endung vstemplate vorhanden sein. Diese enthält die Metadaten zum jeweiligen Template. Ebenfalls vorhanden sein müssen die in den Metadaten referenzierten Dateien.
Ein konkretes Beispiel
Mitunter kommt es vor, dass nicht die von .NET bereit gestellte Anwendungs-Konfiguration verwendet wird, sondern eine eigene Lösung, die meist in allen Projekten von gleichem Aufbau ist. Die einzelnen Einstellungen werden in einer XML-Datei abgelegt. Zu Beginn muss die Vorlage erstellt werden. Dafür wird das Grundgerüst der Konfigurationsdatei erstellt.
Bei Verwendung dieses Templates wird eine Datei mit oben beschriebenen Inhalt angezeigt.
Im nächsten Schritt müssen die Metadaten angegeben werden. Nur mit diesen Angaben ist Visual Studio in der Lage, das erstellte Template zu verwalten und bereit zu stellen.
Wie üblich, handelt es sich auch dabei um eine XML-Datei, die grundsätzlich recht einfach aufgebaut ist. Das Root-Element wird immer durch ein VSTemplate-Tag dargestellt. Danach folgen die Elemente TemplateData und TemplateContent. Ersteres beschreibt die grundlegenden Eigenschaften des Templates. Dies betrifft den Namen, die Beschreibung, für welchen Projekt-Typ dieses Template verwendet werden kann und weitere Angaben (die sich bei einem ProjectTemplate teilweise unterscheiden). Im Bereich TemplateContent wird nun definiert, welche Dateien, Referenzen etc. verwendet werden. Auch hier gibt es einen Unterschied zwischen ProjectTemplate und ItemTemplate.
Wurden beide Dateien angelegt, sind diese in eine Zip-Datei zu packen und in das jeweilige Verzeichnis zu kopieren. Nach einem Neustart von Visual Studio sollte dieses Template nun zur Verfügung stehen.
Zu beachten ist, dass es in den einzelnen Template-Verzeichnissen Unterordner zu den jeweiligen Sprachen gibt. Darunter kann wird eine weitere Verzeichnisstruktur abgebildet, die in den New Item-Wizard übernommen wird. Somit ist es möglich, eigene Templates nach Aufgabengebiet zu gruppieren.
Fazit
An diesem Beispiel war gut zu sehen, dass es sehr einfach ist, ein eigenes Template zu erstellen. Natürlich stehen weitere Möglichkeiten zur Verfügung, beispielsweise die Angabe und Verwendung von Parametern, Bedingungen usw. Es lohnt sich ein Blick in die Template Referenz, um eine Übersicht und Beschreibung aller möglichen Settings zu erhalten.