Generazione di codice e modelli di testo T4
In Visual Studio, un modello di testo T4 costituisce una combinazione di blocchi di testo e logica di controllo in grado di generare un file di testo.La logica di controllo è scritta come frammenti di codice programma in Visual C# o Visual Basic. Il file generato può contenere testo di qualsiasi tipo, quale una pagina Web o un file di risorse o un codice sorgente del programma in qualsiasi linguaggio.
Sono disponibili due tipi di modelli di testo T4:
I modelli di testo T4 della fase di esecuzione (modelli 'pre-elaborati') vengono eseguiti nell'applicazione per produrre stringhe di testo, in genere come parte dell'output.
Ad esempio, è possibile creare un modello per definire una pagina HTML:<html><body> The date and time now is: <#= DateTime.Now #> </body></html>
Si noti che il modello assomiglia all'output generato.La somiglianza del modello all'output risultante consente di evitare errori quando si desidera modificarlo.
Il modello contiene inoltre frammenti di codice programma.È possibile utilizzare questi frammenti per ripetere le sezioni del testo, per creare sezioni condizionali, nonché per visualizzare i dati dall'applicazione.
Per generare l'output, l'applicazione chiama una funzione che viene generata dal modello.Di seguito è riportato un esempio:
string webResponseText = new MyTemplate().TransformText();
L'applicazione può essere eseguita su un computer su cui non è installato Visual Studio.
Per creare un modello della fase di esecuzione, aggiungere un file Modello di testo pre-elaborato al progetto.In alternativa, è possibile aggiungere un file di testo e impostare la relativa proprietà Strumento personalizzato su TextTemplatingFilePreprocessor.
Per ulteriori informazioni, vedere Generazione di testo in fase di esecuzione con modelli di testo T4.Per ulteriori informazioni sulla sintassi dei modelli, vedere Scrittura di un modello di testo T4.
I modelli di testo T4 della fase di progettazione vengono eseguiti in Visual Studio per definire parte del codice sorgente e le altre risorse dell'applicazione.
Vengono in genere utilizzati diversi modelli in grado di leggere i dati in un singolo file di input o database e di generare alcuni dei file .cs, .vb o altri file di origine.Ogni modello genera un file.Vengono eseguiti all'interno di Visual Studio o MSBuild.Ad esempio, i dati di input potrebbero essere un file XML dei dati di configurazione.Ogni qualvolta si modifica il file XML durante lo sviluppo, i modelli di testo rigenereranno parte dei codice dell'applicazione.Uno dei modelli potrebbe assomigliare all'esempio seguente:
<#@ 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. }
A seconda dei valori contenuti nel file XML, il file .cs generato avrà un aspetto simile al seguente.
namespace Fabrikam.FirstJob { ... // More code here. }
Un altro esempio è rappresentato dal fatto che l'input potrebbe essere un diagramma di flusso di lavoro in un'attività aziendale.Quando gli utenti modificano il flusso di lavoro aziendale o quando si inizia a lavorare con nuovi utenti che dispongono di un flusso di lavoro diverso, è facile rigenerare il codice per adattarlo al nuovo modello.
I modelli della fase di progettazione consentono di modificare la configurazione in modo più rapido e affidabile in caso di variazione dei requisiti.In genere l'input viene definito in base ai requisiti aziendali, come nell'esempio del flusso di lavoro.In questo modo diventa più semplice discutere le modifiche con gli utenti.I modelli della fase di progettazione costituiscono pertanto uno strumento utile in un processo di sviluppo Agile.
Per creare un modello della fase di progettazione, aggiungere un file Modello di testo al progetto.In alternativa, è possibile aggiungere un file di testo normale e impostare la relativa proprietà Strumento personalizzato su TextTemplatingFileGenerator.
Per ulteriori informazioni, vedere Generazione di codice in fase di progettazione tramite modelli di testo T4.Per ulteriori informazioni sulla sintassi dei modelli, vedere Scrittura di un modello di testo T4.
[!NOTA]
Il termine modello viene a volte utilizzato per descrivere i dati letti da uno o più modelli.Il modello può avere un formato qualsiasi, in qualsiasi tipo di file o database.Il modello non deve necessariamente essere un modello UML o un modello del Linguaggio specifico di dominio. '"Modello" indica semplicemente che i dati possono essere definiti facendo riferimento ai concetti aziendali, piuttosto che in base alla somiglianza al codice.
La funzionalità di trasformazione del modello di testo è denomina T4.
Argomenti della sezione
Generazione di testo in fase di esecuzione con modelli di testo T4
In tutte le applicazioni che generano file di testo, i modelli di testo precompilati costituiscono un metodo semplice e sicuro per definire il testo.Tuttavia, questo metodo non può essere utilizzato per modelli di testo che cambiano in fase di runtime.Generazione di codice in fase di progettazione tramite modelli di testo T4
La generazione di codice e di altre risorse da un modello consente di aggiornare l'applicazione aggiornando il modello.Generazione di codice in un processo di compilazione
Se è stato installato l'SDK di visualizzazione e modellazione di Visual Studio, è possibile garantire che il software generato sia aggiornato rispetto alle modifiche nel modello.Scrittura di un modello di testo T4
La sintassi di un file modello di testo.Procedura dettagliata: generazione di codice tramite modelli di testo
Dimostrazione di un modo di utilizzare la generazione di codice.Debug di un modello di testo T4
Modalità di esecuzione del debug su modelli di testo e alcuni errori comuni relativi ai modelli di testo.Generazione di file con l'utilità TextTransform
Strumento della riga di comando che è possibile utilizzare per eseguire le trasformazioni dei modelli di testo.Personalizzazione della trasformazione del testo T4
Modalità di scrittura di processori di direttiva e host di modello personalizzati le origini dati personali.
Vedere anche
Concetti
Procedura: generare file da un modello UML