2013-05-09 13 views
6

Qual è il vantaggio dei modelli t4 rispetto ai file di classe in asp.net?Vantaggio di modelli t4 su file di classe

Come stiamo generando una classe fortemente tipizzata utilizzando i modelli t4. Possiamo fare lo stesso usando i file di classe C# in asp.net. Quindi, qual è il vantaggio del template t4 rispetto ai normali file di classe?

Chiunque indichi lo scenerio dove t4 può essere implementato su file di classe.

saluti, sujith

risposta

0

mi piacerebbe iniziare con questa citazione tratta da un MSDN tutorial:

un modello di testo T4 è una miscela di blocchi di testo e logica di controllo in grado di generare un file di testo . La logica di controllo è scritta come frammenti del codice del programma in Visual C# o Visual Basic. Il file generato può essere di qualsiasi tipo, ad esempio una pagina Web, un file di risorse o il codice sorgente del programma in qualsiasi lingua.

I modelli T4 sono utilizzati per generare testo dinamico, che può essere anche una classe. L'entità framework o DataSet Designer sono buoni esempi di generazione di codice in fase di progettazione consentendo all'utente di trascinare graficamente le entità da un database a un Designer e quindi generare tutte le classi per riflettere le tabelle del database.

Sotto il cofano uno strumento personalizzato trasforma l'XML del tempo di progettazione generato nelle classi C#. Il meccanismo alla base di questo è simile a ciò che fa un modello T4.

spero che questa panoramica possa darvi una migliore comprensione su come i modelli T4 possono venire in aiuto.

0

È possibile scrivere codice che scrive altro codice. Ci sono cose che non puoi refactoring in una singola posizione, o cose che sono semplicemente più facilmente centralizzate tramite T4 (o qualsiasi generazione di codice).

Potrebbe esserci un codice in cui un driver centrale potrebbe richiedere più file o molto codice in un singolo file da modificare in base a tale.

Un altro modo per fare buon uso di esso ... ho usato un modello T4 per scrivere un # oggetto po 'C che genera un file .sql, un .xsl, un file .js e .cs. Tutto dal singolo oggetto C# basato su un insieme di regole. Quindi sto generando diversi file utili su un modello C#. Potrei averlo generare il .sql necessario per creare una tabella per contenere quel tipo. a .xsl o .xml per definire i valori di configurazione relativi all'elemento, un file .js per portare un modello fortemente digitato in javascript e infine .cs per il modello attuale in C#.

0

In poche parole, i modelli T4 possono generare classi per te (e altri file) sulla base di alcuni dati di input come un modello di Entity Framework. Questo è molto utile nei casi in cui è necessario creare molte classi (come le classi per tutte le entità di un grande modello di Entity Framework) con caratteristiche identiche. Il modello T4 esegue quindi il lavoro e aggiorna automaticamente le classi create se l'input è alterato (è possibile eseguire lo "Strumento personalizzato" sul file di input per eseguire anche il modello T4).

Il modello T4 può (ovviamente) creare classi parziali per consentire l'aggiunta di membri (ad altre parti della classe che si creano). In questo modo è possibile aggiungere funzionalità che non vengono sovrascritte quando il modello ricrea le classi.

I modelli T4 che generano classi POCO (predefinito per EF in .NET 4.5) si basano su un modello EF sono un esempio perfetto per un buon utilizzo dei modelli T4. Un altro esempio potrebbe essere un modello T4 che crea classi di base del modello di viste (per MVVM) per tutte le classi di entità di un modello EF.

Problemi correlati