2010-01-11 5 views
25

T4 existe desde hace varios años en Visual Studio, pero no llama mucho la atención. Sin embargo, para aquellos que lo conocen, parece haber algunos propósitos muy creativos y útiles.¿Con qué fines ha utilizado T4?

Estoy investigando algunas formas diferentes en que se usa T4, y agradecería saber cómo USTED pudo haberlo usado para escenarios de la vida real. Estoy interesado principalmente en usos no estándar y creativos.

Algunos ejemplos interesantes:

  1. Phil Haack utiliza T4 to create static CSS files from .less
  2. Para Generate WPF and Silverlight Dependency Properties using T4 Templates

Nota: Comprendo que esto es una pregunta orientada a discusión, pero las respuestas podría ser útil a otros. Lo he etiquetado como subjetivo y también marcado como "wiki de la comunidad", por lo tanto, permita que la pregunta permanezca abierta. ¡Gracias!

+1

Haha, el sitio web de Phil Haack muestra la Pantalla amarilla de [ASP.NET] Muerte. –

Respuesta

4

He utilizado las plantillas T4 dentro de sharp-architecture para generar todo, desde modelos hasta controladores y vistas básicas.

Merece la pena, incluso si lo que desea es ver algunos ejemplos avanzados de plantillas T4 en la acción

2

SubSonic 3.0 hace un uso intensivo de las plantillas T4 para generar el código de entidad.

Básicamente llama a GetSchema() en su conexión de base de datos y ejecuta cada tabla que encuentra a través de la plantilla de entidad T4. Lo mejor de usar T4 aquí es que si no le gusta la forma en que maneja su esquema de base de datos, simplemente edite la plantilla.

He modificado la T4 para manejar bases de datos MySQL mejor para mi situación, ya que utilizo muchas columnas tinyint que la T4 predeterminada asigna a byte tipos. Una edición rápida de la T4 me dio el tipo que quería en cambio para mis entidades de aplicación.

+0

Y si eres realmente bueno, puedes hacer que admita una base de datos a la que no estaba destinado. Obtuve un puerto parcial de SubSonic a PostgreSQL editando solo los archivos de plantilla. – Earlz

2

LINQ a las plantillas de SQL para T4
http://l2st4.codeplex.com/

plantillas replican la funcionalidad del SQLMetal y el LINQ a SQL clases de diseño generadores de códigos para C# y VB.Net que requiere simplemente Visual Studio 2008.

+0

Estoy considerando cambiar mi código para usar estas plantillas. ¿Alguien tiene algún recurso testimonial o algunas palabras alentadoras sobre el uso de l2st4? – jpierson

1

plantillas T4 se utilizan mucho en la web del Servicio de Fábrica de Software (Service Factory).

8

yo no soy un gran admirador de la fibrosidad de app.config/web.config, entonces uso T4 para leer esos archivos y crear una clase AppSettings/WebSettings que envuelve las cadenas de conexión y las claves/valores en una clase real. Esto significa que, siempre que use AppSettings.SomeValue para hacer referencia a mi aplicación.config, obtengo comprobando el tiempo de compilación, que es realmente nice.

+0

Bien, ¿tiene esa plantilla T4 disponible en algún lado? –

+6

Lo hago ahora. http://sites.google.com/site/mattmc3/AppSettings_T4.zip – mattmc3

4

utilizo T4 a:

  1. generar scripts CRUD SQL Server y Oracle.
  2. Generar capa de acceso a datos, en base a un esquema de base de
  3. capa Generar capa de lógica de negocios, basado en un esquema de base de
  4. Generar formularios web ASP.NET, HTML y código subyacente, sobre la base de un esquema de base de datos (scafolding).

Me da un punto de partida básico bueno, rápido, simple y básico para mis proyectos.

Y lo mejor es que tengo el control.

Here you can download an example of my templates

2

que he usado para generar T4:

  • proxies (tiempo de diseño, para inyectar/monitoreo envoltura código/registro/... en una API expuesta muy específico). generación
  • interfaz para una aplicación de interfaz/clase de uno-a-uno
  • sustituir la reflexión código por "directamente/real" código de llamada (ventaja mantenimiento de código de reflexión, pero el rendimiento del código real), por ejemplo cuando permitiendo el acceso a propiedades a través de un indexador, o algo en esa dirección. generación
  • XML para un proyecto de Java (no podría encontrar una solución T4-como para Java, que se comparte fácilmente dentro de una empresa, T4 es fácil porque está construido en y se puede ejecutar desde la línea de comandos)
  • generar enumeraciones desde una base de datos maestra (las hemos generado tanto para una base de código Delphi como .Net)
Cuestiones relacionadas