Génération de code et modèles de texte T4
Dans Visual Studio, un modèle de texte T4 est un mélange de blocs de texte et de logique de contrôle qui peut générer un fichier texte. La logique de contrôle est écrite comme des fragments de code du programme dans Visual C# ou Visual Basic. Le fichier généré peut être du texte de tout type, tel qu'une page Web ou un fichier de ressources, ou du code source de programme dans tout langage.
Il existe deux types de modèles de texte T4 :
Les modèles de texte T4 d'exécution (modèles « prétraités ») sont exécutés dans votre application pour produire des chaînes de texte, généralement dans le cadre de sa sortie.
Par exemple, vous pouvez créer un modèle pour définir une page HTML :<html><body> The date and time now is: <#= DateTime.Now #> </body></html>
Remarquez que le modèle ressemble à la sortie générée. La ressemblance du modèle avec la sortie obtenue vous aide à éviter des erreurs lorsque vous voulez le modifier.
De plus, le modèle contient des fragments de code du programme. Vous pouvez utiliser ces fragments pour répéter des sections de texte, organiser des sections conditionnelles et afficher des données de votre application.
Pour générer la sortie, votre application appelle une fonction générée par le modèle. Par exemple :
string webResponseText = new MyTemplate().TransformText();
Votre application peut s'exécuter sur un ordinateur sur lequel Visual Studio n'est pas installé.
Pour créer un modèle au moment de l'exécution, ajoutez un fichier Modèle de texte prétraité à votre projet. Vous pouvez également ajouter un fichier texte brut et affecter à sa propriété Outil personnalisé la valeur TextTemplatingFilePreprocessor.
Pour plus d'informations, consultez Génération de texte durant l'exécution à l'aide des modèles de texte T4. Pour plus d'informations sur la syntaxe des modèles, consultez Écriture d'un modèle de texte T4.
Les modèles de texte T4 au moment du design sont exécutés dans Visual Studio pour définir une partie du code source et d'autres ressources de votre application.
En général, vous utilisez plusieurs modèles qui lisent les données dans une base de données ou un fichier d'entrée unique et génèrent une partie de vos fichiers .cs, .vb ou d'autres fichiers sources. Chaque modèle génère un fichier. Ils sont exécutés dans Visual Studio ou MSBuild.Par exemple, vos données d'entrée peuvent être un fichier XML de données de configuration. Chaque fois que vous modifiez le fichier XML pendant le développement, les modèles de texte régénèrent une partie du code d'application. L'un des modèles peut ressembler à l'exemple suivant :
<#@ 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. }
En fonction des valeurs dans le fichier XML, le fichier .cs généré peut ressembler à ce qui suit :
namespace Fabrikam.FirstJob { ... // More code here. }
Autre exemple : l'entrée peut être un diagramme de flux de travail dans une activité d'entreprise. Lorsque les utilisateurs modifient leur flux de travail d'entreprise ou que vous commencez à travailler avec de nouveaux utilisateurs qui ont un flux de travail différent, il est facile de régénérer le code pour l'adapter au nouveau modèle.
Les modèles au moment du design rendent la modification de la configuration plus rapide et plus fiable lorsque les spécifications changent. En général, l'entrée est définie en termes de besoins de l'entreprise, comme dans l'exemple de flux de travail. Cela facilite les discussions avec vos utilisateurs concernant les changements. Par conséquent, les modèles au moment du design sont un outil utile dans un processus de développement agile.
Pour créer un modèle au moment du design, ajoutez un fichier Modèle de texte à votre projet. Vous pouvez également ajouter un fichier texte brut et affecter à sa propriété Outil personnalisé la valeur TextTemplatingFileGenerator.
Pour plus d'informations, consultez Génération de code durant la conception à l'aide de modèles de texte T4. Pour plus d'informations sur la syntaxe des modèles, consultez Écriture d'un modèle de texte T4.
Notes
Le terme modèle est parfois utilisé pour décrire les données lues par un ou plusieurs modèles.Le modèle peut être dans n'importe quel format, dans tout type de fichier ou de base de données.Il n'est pas tenu d'être un modèle UML ou un modèle de langage spécifique à un domaine. '« modèle » indique seulement que les données peuvent être définies en termes de concepts d'entreprise, plutôt que de ressembler au code.
La fonctionnalité de transformation de modèle de texte est appelée T4.
Dans cette section
Génération de texte durant l'exécution à l'aide des modèles de texte T4
Dans toute application qui génère des fichiers texte, les modèles de texte précompilés constituent une méthode simple et fiable pour définir le texte. Toutefois, cette méthode ne peut pas être utilisée pour les modèles de texte qui changent au moment de l'exécution.Génération de code durant la conception à l'aide de modèles de texte T4
La génération de code et d'autres ressources à partir d'un modèle vous permet de mettre à jour votre application en mettant à jour le modèle.Génération de code dans un processus de génération
Si vous avez installé le Kit de développement de visualisation et de modélisation Visual Studio, vous pouvez garantir que le logiciel généré restera à jour des modifications dans le modèle.Écriture d'un modèle de texte T4
Syntaxe d'un fichier modèle de texte.Procédure pas à pas : génération de code à l'aide de modèles de texte
Démonstration d'une façon d'utiliser la génération de code.Débogage d'un modèle de texte T4
Comment déboguer des modèles de texte et résoudre certaines erreurs courantes liées aux modèles de texte.Génération de fichiers avec l'utilitaire TextTransform
Outil en ligne de commande qui permet d'exécuter des transformations du modèle de texte.Personnalisation d'une transformation de texte T4
Comment écrire des processeurs de directive et des hôtes de modèles personnalisés pour vos propres sources de données.
Voir aussi
Concepts
Comment : générer des fichiers à partir d'un modèle UML
Autres ressources
Génération de code à partir d'un langage spécifique à un domaine