Freigeben über


Codegenerierung und T4-Textvorlagen

In Visual Studio ist eine T4-Textvorlage eine Datei, die eine Mischung von Textblöcken und Steuerelementlogik enthält und zum Generieren einer Textdatei verwendet werden kann.Die Steuerelementlogik wird in Form von Fragmenten des Programmcodes in Visual C# oder Visual Basic geschrieben. Die generierte Datei kann Text einer beliebigen Art sein, z. B. eine Webseite, eine Ressourcendatei oder Programmquellcode in einer beliebigen Sprache.

Es existieren zwei Arten von T4-Textvorlagen:

  • T4-Laufzeittextvorlagen ("vorverarbeitete" Vorlagen) werden in der Anwendung ausgeführt, um Textzeichenfolgen zu erstellen, normalerweise als Teil der Ausgabe.
    Sie können beispielsweise eine Vorlage erstellen, um eine HTML-Seite zu definieren:

    <html><body>
     The date and time now is: <#= DateTime.Now #>
    </body></html>
    

    Die Vorlage ähnelt der generierten Ausgabe.Die Ähnlichkeit der Vorlage mit der resultierenden Ausgabe hilft Ihnen dabei, Fehler zu vermeiden, wenn eine Änderung vorgenommen werden soll.

    Außerdem enthält die Vorlage Fragmente des Programmcodes.Sie können diese Fragmente verwenden, um Abschnitte des Texts zu wiederholen, bedingte Abschnitte zu erstellen und Daten aus der Anwendung anzuzeigen.

    Um die Ausgabe zu generieren, ruft die Anwendung eine Funktion auf, die von der Vorlage generiert wird.Beispiele:

    string webResponseText = new MyTemplate().TransformText();
    

    Die Anwendung kann auf einem Computer ausgeführt werden, auf dem nicht Visual Studio installiert ist.

    Um eine Laufzeitvorlage zu erstellen, fügen Sie dem Projekt eine Datei vom Typ Vorverarbeitete Textvorlage hinzu.Sie können auch eine Nur-Text-Datei hinzufügen und die Eigenschaft Benutzerdefiniertes Tool auf TextTemplatingFilePreprocessor festlegen.

    Weitere Informationen finden Sie unter Laufzeittextgenerierung mithilfe von T4-Textvorlagen.Weitere Informationen zur Syntax von Vorlagen finden Sie unter Schreiben einer T4-Textvorlage.

  • T4-Entwurfszeittextvorlagen werden in Visual Studio ausgeführt, um einen Teil des Quellcodes und andere Ressourcen der Anwendung zu definieren.
    In der Regel würden mehrere Vorlagen verwendet werden, die die Daten in einer einzelnen Eingabedatei oder Datenbank lesen und einen Teil der .cs-, .vb- oder anderer Quelldateien generieren.Jede Vorlage generiert eine Datei.Sie werden in Visual Studio oder MSBuild ausgeführt.

    Bei den Eingabedaten kann es sich z. B. um eine XML-Datei der Konfigurationsdaten handeln.Bei jeder Bearbeitung der XML-Datei während der Entwicklung würden die Textvorlagen einen Teil des Anwendungscodes erneut generieren.Eine der Vorlagen könnte dem folgenden Beispiel entsprechen:

    <#@ output extension=".txt" #>
    <#@ assembly name="System.Xml" #>
    <#
     System.Xml.XmlDocument configurationData = ...; // Read a data file here.
    #>
    namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
    {
      ... // More code here. 
    }
    

    Abhängig von den Werten in der XML-Datei sähe die generierte .cs-Datei etwa folgendermaßen aus:

    namespace Fabrikam.FirstJob
    {
      ... // More code here. 
    }
    

    Anderes Beispiel: Die Eingabe kann ein Diagramm des Workflows in einer Geschäftsaktivität sein.Wenn die Benutzer ihren Geschäftsworkflow ändern oder wenn Sie mit neuen Benutzern arbeiten, die einen anderen Workflow verwenden, kann der Code problemlos neu generiert werden, damit er dem neuen Modell entspricht.

    Entwurfszeitvorlagen sorgen für schnellere und zuverlässigere Konfigurationsänderungen, wenn sich die Anforderungen ändern.In der Regel wird die Eingabe hinsichtlich Geschäftsanforderungen definiert (siehe Workflowbeispiel).Dies erleichtert die Erörterung von Änderungen mit den Benutzern.Entwurfszeitvorlagen sind daher in agilen Entwicklungsprozessen ein nützliches Tool.

    Um eine Entwurfszeitvorlage zu erstellen, fügen Sie dem Projekt eine Datei vom Typ Textvorlage hinzu.Sie können auch eine Nur-Text-Datei hinzufügen und die Eigenschaft Benutzerdefiniertes Tool auf TextTemplatingFileGenerator festlegen.

    Weitere Informationen finden Sie unter Generieren von Code zur Entwurfszeit mithilfe von T4-Textvorlagen.Weitere Informationen zur Syntax von Vorlagen finden Sie unter Schreiben einer T4-Textvorlage.

HinweisHinweis

Das Begriffsmodell dient gelegentlich zur Beschreibung von Daten, die von mindestens einer Vorlage gelesen werden.Das Modell kann ein beliebiges Format aufweisen und in jeder Art von Datei oder Datenbank enthalten sein.Es muss kein UML-Modell oder ein domänenspezifisches Sprachmodell sein. 'Der Begriff "Modell" bedeutet lediglich, dass die Daten hinsichtlich der Geschäftskonzepte definiert werden können. Es bedeutet nicht, dass Ähnlichkeit mit dem Code besteht.

Die Funktion für Textvorlagentransformation wird T4 genannt.

In diesem Abschnitt

Siehe auch

Konzepte

Gewusst wie: Generieren von Dateien aus einem UML-Modell

Weitere Ressourcen

Generieren von Code für eine domänenspezifische Sprache