Novità sulla generazione di codice e sui modelli di testo
I modelli di testo di Visual Studio consentono di generare codice e risorse per l'applicazione e anche qualsiasi tipo di file di testo o documento in fase di runtime.
Novità del Service Pack 1 (SP1)
È possibile ottenere le funzionalità seguenti installando SP1 per Visual Studio 2010.
Debug degli assembly
Se il modello di testo carica un assembly del quale si sta eseguendo il debug, è possibile ricompilare l'assembly senza difficoltà.Nelle versioni di Visual Studio precedenti a SP1 è a volte difficile ricompilare un assembly recentemente caricato da un modello perché il modello blocca l'assembly. Da SP1, il modello carica una copia dell'assembly in modo che l'assembly originale non venga bloccato. Se si ricompila l'assembly, alla successiva esecuzione, il modello ricaricherà una nuova copia dell'assembly. Per ulteriori informazioni, vedere Direttiva assembly T4.
Ereditarietà tra modelli di testo
È possibile definire un modello di testo contenente un framework di blocchi di testo comune a diverse varianti. I modelli di varianti possono ereditare dal modello comune. Per ulteriori informazioni ed esempi, vedere Direttiva template T4 e Generazione di testo in fase di esecuzione tramite modelli di testo T4 pre-elaborati.
Funzionalità nuove e migliorate di Visual Studio 2010
Funzionalità |
Argomento |
---|---|
Modelli di testo pre-elaborati: forniscono un metodo comodo per generare file di testo in fase di runtime in qualsiasi applicazione. |
Generazione di testo in fase di esecuzione tramite modelli di testo T4 pre-elaborati |
Integrazione compilazione: assicura che i file di programma generati siano mantenuti aggiornati con i file modello o di origine. Questa funzionalità è disponibile quando si installa Domain-Specific Language Tools. |
|
Attività di trasformazione del testo per MSBuild: consente di trasformare file specifici in un progetto in caso di compilazione del progetto dalla riga di comando di Visual Studio. Se si dispone di script che chiamano il file TextTransform.exe, questo metodo può risultare più flessibile. |
|
Supporto per Visual Studio Modelbus: fornisce un metodo standard per accedere a più modelli da un modello di testo. |
Microsoft.VisualStudio.TextTemplating.Modeling.ModelBusEnabledTextTransformation |
Separazione da DSL e modelli: non occorre un disporre di un linguaggio specifico di dominio per utilizzare i modelli di testo, anche se le due funzionalità sono state introdotte originariamente contemporaneamente. I modelli di testo e la generazione di file sono una parte incorporata di Visual Studio. |
|
Accesso a provider di servizi: disponibile in una proprietà di ModelingTextTransform. |
|
Accesso a ambiente: Nelle direttive del modello di testo, è possibile utilizzare le macro di Visual Studio, quale $ (ProjectDir) o le variabili di ambiente di Windows, quale % ProgramFiles%. |
Modifiche nella personalizzazione
Sono stati introdotti i seguenti miglioramenti che potrebbe influire sul processo del modello di testo, se è stato personalizzato.
Funzionalità |
Argomento |
---|---|
Modifiche degli spazi dei nomi e degli assembly: alcuni tipi sono passati all'assembly Microsoft.VisualStudio.TextTemplating.Interfaces. |
Procedura dettagliata: creazione di un processore di direttiva personalizzato Procedura dettagliata: creazione di un host del modello di testo personalizzato |
Dizionario Session: un dizionario serializzato che viene passato nel dominio applicazione dove viene eseguito un modello di testo. Fornisce all'host del modello di testo un modo standard per passare dati nel codice del modello di testo. |
Procedura dettagliata: creazione di un host del modello di testo personalizzato |
Altre modifiche successive a Visual Studio 2008
Assembly a cui si fa riferimento nei modelli di testo
I riferimenti del progetto corrente non vengono più utilizzati per trovare gli assembly.
In una direttiva dell'assembly, dichiarare in modo esplicito il percorso dell'assembly obbligatorio.
È possibile utilizzare le macro di Visual Studio, quale $(ProjectDir), o le variabili di ambiente di Windows, quale %ProgramFiles%, come parte del percorso dell'assembly.
Assembly di trasformazione di testo
Gli assembly a cui potrebbe essere necessario fare riferimento per utilizzare i modelli di testo hanno tutti il suffisso "10.0":
Microsoft.VisualStudio.TextTemplating.10.0.dll
Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll
Microsoft.VisualStudio.TextTemplating.Vshost.10.0.dll
Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll
Spazi dei nomi
Non esiste alcun spazio dei nomi "Microsoft.VisualStudio.TextTemplating.Interfaces". Si tratta di una modifica rispetto alla versione Beta2 di Visual Studio 2010.
Avvio del debugger
Per avviare il debugger da un modello di testo, inserire questa chiamata nel punto in cui si desidera iniziare l'esecuzione un'istruzione alla volta:
System.Diagnostics.Debugger.Launch();
Per tornare al debugger nei punti di interruzione successivi, chiamare:
System.Diagnostics.Debugger.Break();
Versione linguaggio predefinito
La versione più recente (4) del compilatore verrà sempre utilizzata per compilare modelli di testo. In Visual Studio 2008, il compilatore predefinito è 2.0, ma è possibile specificare una versione successiva del linguaggio di programmazione del modello, ad esempio <#@ template language="VBv3.5" #>. In Visual Studio 2010 il numero di versione verrà ignorato e verrà visualizzato un avviso. Se si dispone di un modello che si desidera utilizzare in entrambe le versioni di Visual Studio, è possibile ignorare l'avviso.