2009-05-13 16 views
6

Qualcuno ha portato il modello netTiers impostato sui modelli T4 di Visual Studio? O esiste un sistema di portata simile? Qualcuno usa T4 in un ambiente di lavoro? Quali (se esistono) grandi differenze ci sono tra Codesmith e T4?CodeSmith v.s. T4: .net Livello suite suite

+0

Mi interessa anche sapere come le persone superano il fatto che ogni modello T4 genera solo un file di output. –

+0

http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ –

risposta

5

Mi sono dilettato in T4 per un po '- hey, se è gratuito e incluso in VS2008, usalo, giusto?

La mia idea di base era creare un set di modelli per leggere una tabella di database e creare da noi le proprie classi ORM "roll-your-own".

Mi sono arreso su T4, frustrato e incapace di ottenere anche le cose più semplici da utilizzare che sono un pezzo di torta in CodeSmith.

Anche un'operazione semplice come selezionare quale server, database e tabella da utilizzare non può essere eseguita in T4 in modo efficiente da "esterno" al modello stesso. Sì, puoi codificare tutti questi valori come valori di stringa in un modello T4, ma dai, non è davvero una soluzione, vero?

CodeSmith offre un ottimo supporto per il prelievo di server, database e tabelle, ed è possibile impostarli come proprietà sul modello e scegliere semplicemente ciò che si desidera e lasciare che il modello faccia le proprie cose su quel particolare tavolo selezionato.

La mia conclusione: T4 è promettente, ma "non c'è" ancora. Potrebbe funzionare per scenari molto semplici, ma al momento, a mio avviso non è neanche lontanamente flessibile e potente come Codesmith.

Per uno scenario come .netTiers, per il momento resterei con Codesmith.

Marc

+0

Potresti ovviamente avere impostazioni in un modello separato e includerlo nel tuo modello di generazione principale. In questo modo, il tuo file delle impostazioni sarà piccolo e tutto sarà contenuto in un singolo file. Potrebbe essere chiamato 'settings.tt' –

+0

@Robert: certo - ma questo non risolve il problema fondamentale - non c'è un modo semplice per passare i parametri ai template T4 in questo momento - un ** MAJOR ** svantaggio a mio parere –

+0

lo so questa è una vecchia domanda, ma nel caso in cui qualcuno si imbatta in una discussione - le T4 ora hanno una direttiva "Parameter". http://www.olegsych.com/2010/05/t4-parameter-directive/ – EBarr

5

T4 non è CodeSmith. Sì, si specificano i parametri in un file .tt sotto forma di codice C# o Visual Basic e si utilizza una direttiva < # @ include #> per fare riferimento all'attuazione effettiva della logica di generazione del codice. Questo non è più hard-coding di specificare le stesse informazioni in un file XML con CodeSmith.

Per una suite di modelli T4 simile a NetTiers, consultare l'architettura S # arp: http://code.google.com/p/sharp-architecture/.

1

Se si sta cercando un'implementazione T4 di un DAL ben supportato che sia Open Source con un'interfaccia Linq e una propria interfaccia Fluent che creerà i wrapper per Tabelle, Processi memorizzati, Visualizzazioni ecc. Quindi è necessario provare SubSonic 3.0. SubSonic 2.2 ha la stessa bontà meno il T4 e l'interfaccia Linq ed è in modalità di rilascio. SubSonic 3.0 è in Alpha ma puoi scaricare il codice o una .dll e i modelli T4 se lo desideri.

Problemi correlati