The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Visual Studio Templates erstellen

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
-

Posts: 1524
Nickname: nitronic
Registered: Jul, 2006

Norbert Eder works as a software architect.
Visual Studio Templates erstellen Posted: Jan 9, 2008 10:52 AM
Reply to this message Reply

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
Latest .NET Buzz Posts
Latest .NET Buzz Posts by -
Latest Posts From Norbert Eder - Living .NET

Advertisement

Einleitung


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.

ConfigurationFile.xml
<?xml version="1.0"?>
<AppConfiguration>
  <ReferencedConfigurations>
  </ReferencedConfigurations>
  
  <Commands>
  </Commands>
  
  <MiscSettings>
  </MiscSettings>
</AppConfiguration>

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.

ConfigurationFile.vstemplate
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate 
  Version="3.0.0" 
  Type="Item" 
  xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name>Custom Configuration File</Name>
    <Icon></Icon>
    <Description>
      Creates a custom configuration file
    </Description>
    <ProjectType>CSharp</ProjectType>
    <ProvideDefaultName>true</ProvideDefaultName>
    <DefaultName>ConfigurationFile.xml</DefaultName>
  </TemplateData>
  <TemplateContent>
    <ProjectItem 
      ReplaceParameters="true" 
      TargetFileName="$fileinputname$.xml">
        ConfigurationFile.xml
    </ProjectItem>
  </TemplateContent>
</VSTemplate>

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.

Referenzen


Visual Studio: Anpassung Class Template
Visual Studio Template Reference

Read: Visual Studio Templates erstellen

Topic: Dezember 2007 im Rückblick Previous Topic   Next Topic Topic: Ruby, Rails, JavaScript

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use