2010-01-11 13 views
25

T4 esiste da diversi anni in Visual Studio, ma non riceve molta attenzione. Tuttavia, per quelli che lo sanno, sembra che ci siano degli scopi molto creativi e utili.Per quali scopi hai usato T4?

Sto studiando alcuni modi diversi in cui viene utilizzato T4, e sarei lieto di sentire come TU l'hai usato per scenari di vita reale. Sono principalmente interessato a usi non standard e creativi.

Alcuni esempi interessanti:

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

Nota: Mi rendo conto che questa è una domanda discussione orientata, ma le risposte potrebbe essere utile per gli altri. L'ho etichettato come soggettivo e contrassegnato come "wiki della comunità", quindi per favore lascia che la domanda rimanga aperta. Grazie!

+1

Haha, il sito web di Phil Haack sta mostrando schermo giallo di [ASP.NET] Morte. –

risposta

4

Ho utilizzato i modelli T4 all'interno dello sharp-architecture per generare tutto, dai modelli ai controller alle viste di base.

Sicuramente vale la pena di verificare, anche se si desidera solo per vedere alcuni esempi avanzati di modelli T4 in azione

2

SubSonic 3.0 fa largo uso di modelli T4 per la generazione del codice entità.

In sostanza chiama GetSchema() sulla connessione al database ed esegue ogni tabella che trova attraverso il modello di entità T4. La cosa grandiosa dell'utilizzo di T4 qui è che se non ti piace il modo in cui gestisce lo schema del tuo database, basta modificare il modello.

Ho ottimizzato le T4 per gestire meglio i database MySQL per la mia situazione, poiché utilizzo molte colonne tinyint che la T4 predefinita associa ai tipi byte. Una modifica rapida al T4 mi ha dato il tipo che volevo invece per le mie entità applicative.

+0

E se sei davvero bravo puoi farlo supportare un database a cui non era destinato. Ho ottenuto una porta parziale di SubSonic a PostgreSQL modificando solo i file modello. – Earlz

2

LINQ to SQL modelli per T4
http://l2st4.codeplex.com/

Modelli che replicano la funzionalità del SQLMetal e LINQ to SQL classi CODE Designer-generatori sia per C# e VB.Net che richiede solo Visual Studio 2008.

+0

Sto considerando di cambiare il mio codice per utilizzare questi modelli. Qualcuno ha delle risorse testimoniali o delle parole incoraggianti sull'uso di l2st4? – jpierson

1

modelli T4 sono usati pesantemente nel Web Service Software Factory (Service Factory).

8

Io non sono un grande fan della stringy-ness di app.config/web.config, quindi uso T4 per leggere quei file e creare una classe AppSettings/WebSettings che avvolga le stringhe di connessione e le chiavi/valori in una classe reale. Ciò significa che, finché utilizzo sempre AppSettings.SomeValue per fare riferimento alla mia app.config, ricevo il tempo di compilazione, che è davvero bello.

+0

bello, hai quel modello T4 disponibile da qualche parte? –

+6

Lo faccio adesso. http://sites.google.com/site/mattmc3/AppSettings_T4.zip – mattmc3

4

Io uso T4 a:

  1. generare script CRUD SQL Server e Oracle.
  2. Genera Access Layer, sulla base di uno schema di database
  3. Strato Generare Business Layer Logic, sulla base di uno schema di database
  4. generare ASP.NET WebForms, HTML e codebehind, sulla base di uno schema di database (scafolding).

Mi dà un buon, veloce, semplice, base di partenza per i miei progetti.

E il meglio è che ho il controllo.

Here you can download an example of my templates

2

ho usato per generare T4:

  • proxy (fase di progettazione, per l'iniezione/monitoraggio avvolgimento Codice/registrazione/... in un ben preciso api esposte). generazione
  • interfaccia di mappatura interfaccia/classe one-on-one
  • sostituire riflessione codice da "direttamente/reale" codice chiamante (vantaggio codice riflessione manutenzione, ma le prestazioni del codice effettivo) per esempio quando consentendo l'accesso alle proprietà tramite un indicizzatore, o qualcosa di in quella direzione. generazione
  • XML per un progetto Java (non riusciva a trovare una soluzione T4-come per Java, che è facilmente condiviso all'interno di una società, T4 è facile perché è costruito in e si può eseguire da linea di comando)
  • generare enumerazioni da un database master (abbiamo entrambi generati per una base di Delphi-codice e .Net codice di base)
Problemi correlati