Generación de código y plantillas de texto T4
En Visual Studio, una plantilla de texto T4 es una combinación de bloques de texto y lógica de control que puede generar un archivo de texto. La lógica de control se escribe como fragmentos de código de programa en Visual C# o Visual Basic. El archivo generado puede ser texto de cualquier tipo, como una página web o un archivo de recursos o código fuente del programa en cualquier lenguaje.
Hay dos tipos de plantillas de texto T4:
Las plantillas de texto T4 en tiempo de ejecución (plantillas 'preprocesadas') se ejecutan en la aplicación para generar cadenas de texto, normalmente como parte de su resultado.
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 al resultado generado. La similitud de la plantilla con el resultado sirve de ayuda para evitar errores cuando se desea modificar la plantilla.
Además, la plantilla contiene fragmentos de código de programa. Puede utilizar estos fragmentos para repetir secciones de texto, hacer secciones condicionales y mostrar los datos de la aplicación.
Para generar el resultado, la aplicación llama a una función que está generada por la plantilla. Por ejemplo:
string webResponseText = new MyTemplate().TransformText();
La aplicación se puede ejecutar en un equipo que no tiene 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 mediante el uso de plantillas de texto T4 preprocesadas. Para obtener más información acerca de la sintaxis de plantillas, vea Escribir una plantilla de texto T4.
Las plantillas de texto T4 en tiempo de diseño se ejecutan en Visual Studio para definir parte del código fuente y otros recursos de la aplicación.
Normalmente utilizaría varias plantillas que leen los datos en un archivo de entrada único o base de datos, y generaría algunos archivos .cs, .vb u otros archivos de código fuente. Cada plantilla genera un archivo. Se ejecutan dentro de Visual Studio o MSBuild.Por ejemplo, los datos de entrada podrían ser un archivo XML de datos de configuración. Siempre que modifique el archivo XML durante el desarrollo, las plantillas de texto regenerarían parte del código de aplicación. Una de las plantillas podría tener un aspecto similar al del siguiente ejemplo:
<#@ 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. }
Dependiente de los valores del archivo XML, el archivo .cs generado se parecería al siguiente:
namespace Fabrikam.FirstJob { ... // More code here. }
Otro ejemplo: la entrada podría ser un diagrama de flujo de trabajo en una actividad empresarial. Cuando los usuarios cambian su flujo de trabajo empresarial, o cuando se inicia el trabajo con nuevos usuarios que tienen un flujo de trabajo diferente, es fácil volver a generar el código para el nuevo modelo.
Cuando los requisitos cambian, las plantillas en tiempo de diseño hacen que el cambio de configuración sea más rápido y confiable. Normalmente la entrada se define en términos de requisitos comerciales, como en el ejemplo del flujo de trabajo. Esto facilita el debate sobre los cambios con los usuarios. Las plantillas en tiempo de diseño son, por consiguiente, una herramienta útil en un proceso de desarrollo ágil.
Para crear una plantilla en tiempo de diseño, agregue un archivo de Plantilla de texto al proyecto. También 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 usando las plantillas de texto T4. Para obtener más información acerca de la sintaxis de plantillas, vea Escribir una plantilla de texto T4.
Nota
El término modelo se utiliza a veces para describir la lectura de los datos por una o más plantillas. El modelo puede estar en cualquier formato, 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 modelo únicamente indica que los datos se pueden definir en términos de conceptos del negocio, en lugar de parecerse al código.
La característica de transformación de plantilla de texto se denomina T4.
En esta sección
Generación de texto en tiempo de ejecución mediante el uso de plantillas de texto T4 preprocesadas
En cualquier aplicación que genere archivos de texto, las plantillas de texto precompiladas resultan un método fácil y confiable de definir texto. Sin embargo, este método no se puede usar con las plantillas de texto que cambian en tiempo de ejecución.Generación de código en tiempo de diseño usando las plantillas de texto T4
La generación de código y otros recursos a partir de un modelo permite actualizar la aplicación al actualizar el modelo.Generación de código en un proceso de compilación
Si ha instalado el SDK de visualización y modelado de Visual Studio, puede asegurarse de que el software generado se mantiene actualizado con los cambios del modelo.Escribir una plantilla de texto T4
La sintaxis de un archivo de plantilla de texto.Tutorial: Generar código mediante plantillas de texto
Demostración de un modo de usar la generación de código.Solucionar problemas de las plantillas de texto T4
Cómo depurar plantillas de texto y algunos errores de plantilla de texto comunes.Generar archivos con la utilidad TextTransform
Herramienta de línea de comandos que se puede usar para ejecutar transformaciones de plantilla de texto.Personalizar la transformación de texto T4
Cómo escribir procesadores de directivas y personalizar host de plantillas para sus propios orígenes de datos.
Recursos
Centro para desarrolladores de T4 recopila los ejemplos, sugerencias y las preguntas más frecuentes sobre T4.
Vea también
Otros recursos
Cómo: Generar archivos a partir de un modelo UML
Generar código a partir de lenguajes específicos de dominio
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Marzo de 2011 |
Dé énfasis a la diferencia entre las plantillas en tiempo de ejecución y en tiempo de diseño. |
Comentarios de los clientes. |