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 de programme en Visual C# ou Visual Basic. Vous pouvez utiliser les fonctionnalités C# version 6.0 dans les directives de modèles T4. Le fichier généré peut être du texte, comme une page web, ou un fichier de ressources, ou du code source de programme dans tous les langages.

Pour un langage dédié (DSL), conçu pour exprimer des instructions dans un espace de problème particulier, découvrez comment Générer du code à partir d’un langage dédié

Il existe deux types de modèles de texte T4 : au moment de l’exécution et au moment de la conception

Modèles de texte T4 au moment de l’exécution

Les modèles au moment de l’exécution sont également appelés modèles « prétraités ». Vous exécutez les modèles dans votre application pour produire des chaînes de texte, 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 quand 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 qui n’a pas Visual Studio 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 de texte brut et définir sa propriété Outil personnalisé sur TextTemplatingFilePreprocessor.

Pour plus d’informations, consultez Génération de texte au moment de l’exécution avec 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.

Modèles de texte T4 au moment de la conception

Les modèles au moment de la conception définissent 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, et génèrent une partie de vos fichiers .cs ou .vb, ou d’autres fichiers sources. Chaque modèle génère un fichier, et est créé 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 regénèrent une partie du code d’application. Voici ce à quoi peut ressembler un modèle :

<#@ output extension=".cs" #>
<#@ assembly name="System.Xml" #>
<#
 System.Xml.XmlDocument configurationData = ...; // Read a data file here.
#>
namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
{
  ... // More code here.
}

Le fichier .cs généré est au format suivant en fonction des valeurs de fichier XML :

namespace Fabrikam.FirstJob
{
  ... // More code here.
}

Autre exemple : l’entrée peut être un diagramme de flux de travail dans une activité d’entreprise. Quand les utilisateurs changent leur workflow métier ou que vous commencez à travailler avec de nouveaux utilisateurs qui ont un workflow différent, vous pouvez facilement regénérer le code pour l’adapter au nouveau modèle.

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 se présenter sous 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 ni un modèle de langage spécifique à un domaine. Le terme « 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. Les modèles au moment de la conception sont plus rapides et plus fiables quand vous devez changer la configuration pour l’adapter aux exigences. En général, l’entrée est définie en termes de besoins métier, comme dans l’exemple de workflow. Les modèles au moment de la conception sont des outils utiles 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 au moment de la conception avec 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.

La fonctionnalité de transformation de modèle de texte est appelée T4.

Voir aussi