Vytvoření kódu a textové šablony T4

V sadě Visual Studio je textová šablona T4 kombinací textových bloků a řídicí logiky, která může generovat textový soubor. Řídicí logika se zapisuje jako fragmenty kódu programu v jazyce Visual C# nebo Visual Basic. Funkce jazyka C# verze 6.0 můžete použít ve direktivách šablon T4. Vygenerovaný soubor může být text, například webová stránka nebo soubor prostředků, nebo zdrojový kód programu v libovolném jazyce.

V případě jazyka specifického pro doménu (DSL), který je určený k vyjádření příkazů v konkrétním problémovém prostoru, se dozvíte, jak generovat kód z jazyka specifického pro doménu.

Existují dva druhy textových šablon T4: doba běhu a čas návrhu

Textové šablony T4 za běhu

Šablony doby běhu se také označují jako předzpracované šablony. Šablony v aplikaci spustíte, aby se v rámci výstupu vytvořily textové řetězce. Můžete například vytvořit šablonu pro definování stránky HTML:

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

Všimněte si, že šablona se podobá vygenerovanému výstupu. Podobnost šablony s výsledným výstupem vám pomůže vyhnout se chybám, když ji chcete změnit.

Šablona navíc obsahuje fragmenty kódu programu. Tyto fragmenty můžete použít k opakování oddílů textu, k vytváření podmíněných oddílů a k zobrazení dat z vaší aplikace.

K vygenerování výstupu aplikace volá funkci, která je vygenerována šablonou. Příklad:

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

Vaše aplikace může běžet na počítači, na který není nainstalovaná sada Visual Studio.

Pokud chcete vytvořit šablonu za běhu, přidejte do projektu soubor předzpracované textové šablony . Můžete také přidat soubor prostého textu a nastavit jeho vlastní nástroj vlastnost TextTemplatingFilePreprocessor.

Další informace najdete v tématu Generování textu za běhu pomocí textových šablon T4. Další informace o syntaxi šablon naleznete v tématu Psaní textové šablony T4.

Textové šablony t4 v době návrhu

Šablony času návrhu definují část zdrojového kódu a dalších prostředků vaší aplikace. Obvykle používáte několik šablon, které čtou data v jednom vstupním souboru nebo databázi a vygenerují některé soubory .cs, .vb nebo jiné zdrojové soubory. Každá šablona generuje jeden soubor a je sestavena v sadě Visual Studio nebo MSBuild.

Vstupními daty můžou být například soubor XML konfiguračních dat. Kdykoli během vývoje upravíte soubor XML, textové šablony znovu vygenerují část kódu aplikace. Jedna ze šablon může vypadat podobně jako v následujícím příkladu:

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

Vygenerovaný soubor .cs je v následujícím formátu na základě hodnot souboru XML:

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

Jako další příklad může být vstup diagramem pracovního postupu v obchodní aktivitě. Když uživatelé změní pracovní postup firmy nebo když začnete pracovat s novými uživateli, kteří mají jiný pracovní postup, je snadné znovu vygenerovat kód tak, aby odpovídal novému modelu.

Poznámka:

Model termínů se někdy používá k popisu dat přečtevaných jednou nebo více šablonami. Model může být v libovolném formátu v libovolném typu souboru nebo databáze. Nemusí to být model UML ani model jazyka specifický pro doménu. Model pouze označuje, že data je možné definovat z hlediska obchodních konceptů, a ne z pohledu kódu. Šablony v době návrhu jsou rychlejší a spolehlivější při změně konfigurace při změně požadavků. Vstup je obvykle definován z hlediska obchodních požadavků, jako v příkladu pracovního postupu. Šablony v době návrhu jsou užitečné nástroje v agilním procesu vývoje.

Pokud chcete vytvořit šablonu v době návrhu, přidejte do projektu soubor textové šablony . Alternativně můžete přidat soubor ve formátu prostého textu a nastavit jeho vlastnost Vlastní nástroj na TextTemplatingFileGenerator.

Další informace naleznete v tématu Generování kódu v době návrhu pomocí textových šablon T4. Další informace o syntaxi šablon naleznete v tématu Psaní textové šablony T4.

Funkce transformace textové šablony má název T4.

Viz také