Generación de código y plantillas de texto T4

En Visual Studio, una plantilla de texto T4 es una mezcla de bloques de texto y lógica de control que puede generar un archivo de texto. La lógica de control se escribe en forma de fragmentos de código de programa en Visual C# o Visual Basic. Puede usar las características de la versión 6.0 de C# en las directivas de plantillas T4. El archivo generado puede ser texto, como una página web, un archivo de recursos o código fuente de programa en cualquier lenguaje.

Para un lenguaje específico de dominio (DSL), diseñado para expresar instrucciones en un espacio de problemas determinado, obtenga información sobre cómo generar código a partir de lenguajes específicos de dominio.

Hay dos tipos de plantillas de texto T4: de tiempo de ejecución y de tiempo de diseño.

Plantillas de texto T4 de tiempo de ejecución

Las plantillas de tiempo de ejecución también se conocen como plantillas "preprocesadas". Las plantillas se ejecutan en la aplicación para generar cadenas de texto como parte de su salida. Por ejemplo, puede crear una plantilla para definir una página HTML:

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

Observe que la plantilla es similar a la salida generada. La similitud de la plantilla con la salida resultante le ayudará a evitar errores cuando quiera cambiarla.

Además, la plantilla contiene fragmentos de código de programa. Puede usar estos fragmentos para repetir secciones de texto, crear secciones condicionales y mostrar datos de la aplicación.

Para generar la salida, la aplicación llama a una función generada por la plantilla. Por ejemplo:

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

La aplicación se puede ejecutar en un equipo que no tenga Visual Studio instalado.

Para crear una plantilla en tiempo de ejecución, agregue un archivo de plantilla de texto preprocesada al proyecto. También puede agregar un archivo de texto sin formato y establecer su propiedad Herramienta personalizada en TextTemplatingFilePreprocessor.

Para obtener más información, vea Generación de texto en tiempo de ejecución con plantillas de texto T4. Para obtener más información sobre las sintaxis de las plantillas, vea Escritura de una plantilla de texto T4.

Plantillas de texto T4 de tiempo de diseño

Las plantillas de tiempo de diseño definen la parte del código fuente y otros recursos de la aplicación. Por lo general, se usan varias plantillas que leen los datos de un único archivo de entrada o una única base de datos, y se generan algunos de los archivos .cs, .vb u otros de código fuente. Cada plantilla genera un archivo y se compila en Visual Studio o MSBuild.

Por ejemplo, los datos de entrada podrían ser un archivo XML de datos de configuración. Siempre que edite el archivo XML durante el desarrollo, las plantillas de texto regeneran parte del código de aplicación. Una de las plantillas podría parecerse al siguiente ejemplo:

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

El archivo .cs generado tiene el formato siguiente en función de los valores del archivo XML:

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

A modo de ejemplo, la entrada podría ser un diagrama del flujo de trabajo de una actividad profesional. Si los usuarios cambian su flujo de trabajo profesional, o si empieza a trabajar con nuevos usuarios que tienen un flujo de trabajo diferente, es fácil regenerar el código para ajustarlo al nuevo modelo.

Nota

El término modelo se usa a veces para describir los datos que una o varias plantillas leen. El modelo puede tener cualquier formato y estar en cualquier tipo de archivo o base de datos. No tiene que ser un modelo UML ni un modelo de lenguaje específico de dominio. El término "modelo" solo indica que los datos se pueden definir en términos de conceptos de negocios, en lugar de parecerse al código. Las plantillas de tiempo de diseño son más rápidas y fiables al cambiar la configuración a medida que cambian los requisitos. Normalmente, la entrada se define en términos de requisitos empresariales, como en el ejemplo de flujo de trabajo. Las plantillas de tiempo de diseño son herramientas útiles en un proceso de desarrollo ágil.

Para crear una plantilla en tiempo de diseño, agregue un archivo de plantilla de texto al proyecto. Como alternativa, puede agregar un archivo de texto sin formato y establecer su propiedad Herramienta personalizada en TextTemplatingFileGenerator.

Para obtener más información, vea Generación de código en tiempo de diseño mediante plantillas de texto T4. Para obtener más información sobre las sintaxis de las plantillas, vea Escritura de una plantilla de texto T4.

El característica de transformación de plantillas de texto de denomina T4.

Consulte también