T4 Template (Partie 1/2)

Administrative_Tools

Nous allons voir au travers de deux articles les T4 Template. Dans cette première partie nous allons découvrir cette technologie. Puis dans une deuxième partie nous verrons quelques exemples techniques afin d’apprécier pleinement les possibilités mises à disposition par les T4 Template.

Contexte

Lorsque l’on souhaite auto générer du code pour un projet .NET (par exemple pour une DAL), on est souvent conduit à suivre un de ces deux chemins :

  • Créer un projet dédié à la génération de la DAL
  • Utiliser un composant propriétaire

Ces solutions ne sont jamais satisfaisantes, en effet un projet dédié nécessite de la maintenance, au contraire d’un composant propriétaire qui obligera de passer par l’achat d’une licence, et qui ne permettra pas forcément une grande liberté dans le paramétrage de la génération.

Description 

T4 Template est une technologie de génération de code mis à disposition dans Visual Studio depuis sa version 2005. Elle ne nécessite pas d’installation complémentaire pour son support, car nativement embarqué dans Visual Studio (documentation complète : https://msdn.microsoft.com/fr-fr/library/bb126445.aspx). Par contre Visual Studio ne propose pas de colorisation syntaxique pour cette technologie, il vous faudra donc passer par un plugin pour ajouter cette fonctionnalité. Il en existe plusieurs disponibles dans la Visual Studio Galerie :

Je vous laisse comparer ces différents produits.

Créer un fichier T4 

Dans votre solution Visual Studio faites un clic droit, ajoutez un nouvel élément et sélectionnez « Blank T4 Template » :

t41

Nous obtenons le fichier suivant :

t42

Structure d’un fichier T4

Le fichier se compose de différentes directives placées en début de fichier qui vont permettre de définir les propriétés du fichier à générer, les références à inclure, les librairies nécessaires à son fonctionnement ainsi qu’un certain nombre d’autres propriétés. Les directives sont décrites sous forme de balises <#@ …..#>, il en existe 5 différentes :

  • template spécifie les propriétés du fichier à générer comme les options de débogage ou son langage (VB/C#)
  • output spécifie l’extension du fichier à générer (.cs, .vb, .html, css …)
  • assembly équivalent des références dans les projets .NET (le script T4 se comporte comme un projet à part)
  • import équivalent des using dans les fichiers .cs
  • include référence un autre fichier “.tt”

La documentation complète est accessible à cette adresse : https://msdn.microsoft.com/fr-fr/library/gg586945.aspx.

Le reste du fichier va définir le contenu à générer :

  • les balises <# … #> permettent d’utiliser les opérateurs C# ou VB
  • les balises <#+ … #> permettent de définir des fonctions
  • le contenu sans balise est généré tel quel

Exécuter un fichier T4

La génération d’un fichier à partir d’un script T4 se fera automatiquement lors de chaque modification du fichier. Vous pouvez aussi provoquer manuellement la génération du fichier par un clic droit sur votre fichier T4 et en cliquant sur « Run Custom Tool ».

t43

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.