Создание кода и текстовые шаблоны T4

В Visual Studio текстовый шаблон T4 представляет собой сочетание блоков текста и логики управления, которое может создать текстовый файл.Логика управления представляет собой фрагменты программного кода в Visual C# или Visual Basic. Созданный файл может представлять собой текст любого вида, например веб-страницу, файл ресурсов или исходный программный код на любом языке.

Существует два вида текстовых шаблонов T4:

  • Текстовые шаблоны T4 времени выполнения (предварительно обработанные шаблоны) выполняются в приложении для создания текстовых строк, как правило в составе выходных данных приложения.
    Например, можно создать шаблон для определения страницы HTML:

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

    Обратите внимание, что шаблон напоминает созданные выходные данные.Сходство шаблона с результирующими выходными данными помогает избегать ошибок при его изменении.

    Кроме того, шаблон содержит фрагменты программного кода.Эти фрагменты можно использовать для повторения разделов текста, создания условных разделов и отображения данных из приложения.

    Для создания выходных данных приложение вызывает функцию, генерируемую этим шаблоном.Примеры.

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

    Приложение может выполняться на компьютере, на котором не установлена система Visual Studio.

    Для создания шаблона времени выполнения добавьте в проект файл Предварительно обработанный текстовый шаблон.Кроме того, можно добавить обычный текстовый файл и задать для свойства Специальный инструмент значение TextTemplatingFilePreprocessor.

    Дополнительные сведения см. в разделе Создание текста во время выполнения с помощью текстовых шаблонов T4.Дополнительные сведения о синтаксисе шаблонов см. в разделе Написание текстового шаблона T4.

  • Текстовые шаблоны T4 времени разработки выполняются в Visual Studio для определения части исходного кода и других ресурсов приложения.
    Как правило, используется несколько шаблонов, считывающих данные из одного входного файла или базы данных, и создается несколько файлов .cs, .vb или других исходных файлов.Каждый шаблон позволяет создать один файл.Они выполняются в Visual Studio или MSBuild.

    Например, в качестве входных данных может использоваться XML-файл данных конфигурации.Каждый раз при редактировании XML-файла во время разработки текстовые шаблоны повторно создают соответствующую часть кода приложения.Один из шаблонов может напоминать шаблон в следующем примере:

    <#@ 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. 
    }
    

    В зависимости от значений в XML-файле созданный файл .cs напоминает следующее:

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

    Кроме того, в качестве входных данных можно использовать схему рабочих процессов в бизнес-действии.При изменении рабочего бизнес-процесса пользователями или начале работы с новыми пользователями, использующими другой рабочий процесс, легко пересоздать код в соответствии с особенностями новой модели.

    Шаблоны времени разработки позволяют более быстро и надежно изменять конфигурацию при изменении требований.Как правило, входные данные определяются в терминах бизнес-требований (как в примере рабочего процесса).Это облегчает процесс обсуждения изменения с пользователями.Шаблоны времени разработки, таким образом, являются полезным инструментом гибкого процесса разработки.

    Чтобы создать шаблон времени разработки, добавьте в проект файл Текстовый шаблон.Кроме того, можно добавить обычный текстовый файл и задать для свойства Специальный инструмент значение TextTemplatingFileGenerator.

    Дополнительные сведения см. в разделе Создание кода во время разработки с помощью текстовых шаблонов T4.Дополнительные сведения о синтаксисе шаблонов см. в разделе Написание текстового шаблона T4.

ПримечаниеПримечание

Термин модель иногда используется для описания данных, считываемых одним или несколькими шаблонами.Модель может быть представлена в любом формате, любым файлом или базой данных.Он не обязательно является моделью UML или доменного языка. 'Модель указывает, что данные можно определить в терминах бизнес-концепций, а не является аналогом кода.

Функция преобразования текстовых шаблонов называется T4.

Содержание

См. также

Основные понятия

Практическое руководство. Создание файлов из модели UML

Другие ресурсы

Создание кода из доменного языка