Bewise

Nous développons... votre avance

Visual Studio 2005 : gagnez du temps avec les templates !

SLF
31/03/2006 - Laurent Duveau
Télécharger la version Word
Télécharger les sources


1 Introduction

Visual Studio 2005 (toutes versions) vous permet de créer vos propres templates qui seront intégrés dans la fenêtre "créer un projet" ou "ajouter un élément". Cela peut vous être très utile lorsque vous travaillez en équipe, ou tout simplement pour vous éviter des tâches répétitives (ajout systématique de code à la création d'une classe, ou encore réorganisation "visuelle" du code par exemple).

Prenons un exemple concret, dans une application ASP.NET, vous souhaitez dans toutes vos pages :

  • utiliser une MasterPage particulière
  • hériter d'une page de base
  • inclure un cartouche de commentaires XML (nom auteur, date)
  • faire référence aux namespace des autres couches de votre application (data, métier, ...)
  • présenter un début de charte graphique dans leur <asp:Content> (un cadre et un titre)
  • implémenter certaines méthodes d'initialisation

Les templates viennent en aide afin de proposer à vous et votre équipe de coder au plus vite et de façon uniforme.

Ils sont bien sûr utilisables avec tout autre type de projet (Application Windows, Smart Device, bibliothèque de classe, ...) et dans tous les langages.

Cet article a été réalisé sur les versions suivantes :

§ Framework .NET version 2.0.50727

§ Visual Studio 2005 version 8.0.50727.42 (RTM.050727-4200)


2 Présentation

il y a 2 types de templates :

  • Les Templates de projets
  • Les Templates d'éléments

Les templates de projet permettent de proposer des modèles complets dans la fenêtre "Add New Project", incluant tous les fichiers nécessaires pour démarrer une nouvelle application Windows ou une librairie de classes par exemple.

Les templates d'éléments sont disponibles dans la fenêtre "Add New Item" et servent de modèle pour créer : Classe, Windows Form, User Control, Web Service, ...

C'est l'utilisation de ce deuxième type de modèle que je me propose de vous détailler ici.

Les templates d'éléments sont inclus dans des fichiers .zip contenant :

  • le fichier template XML avec extension .vstemplate, il contient les metadatas qui définissent les informations utiles à Visual Studio pour utiliser le template.
  • Un ou plusieurs fichiers qui serviront de modèles lors de l'utilisation du template (ex: une page aspx et le fichier de code associé)
  • une icône (facultative) qui représente le template dans la fenêtre "Add New Item"

Structure du fichier template .vstemplate :

<VSTemplate Version="2.0.0" Type="Item"> <TemplateData> <Name>Classe Bewise</Name> <Description>Classe de départ pour un projet Bewise</Description> <Icon>Bewise.ico</Icon> <ProjectType>CSharp</ProjectType> <ProjectSubType>Windows</ProjectSubType> <DefaultName>BewiseClass.cs</DefaultName> </TemplateData> <TemplateContent> <ProjectItem>BewiseClassTemplate.cs</ProjectItem> </TemplateContent> </VSTemplate>

Elément <TemplateData> : catégorie du template (Web, Windows, langage, ...) et caractéristiques pour la boite de dialogue "Add New Item" (nom, description, icône, ...).
Elément <TemplateContent> : fichiers inclus avec le template.
Les zip sont stockés et utilisés par Visual Studio dans le répertoire :

\My Documents\Visual Studio 2005\Templates\ItemTemplates

Une copie est faite dans :

\My Documents\Visual Studio 2005\My Exported Templates


3 Création d'un Item Template

Pour revenir à mon exemple concret de tout à l'heure, je pourrai définir ce modèle pour répondre aux besoins :

La classe de ma page modèle :

clip_image002

(les noms entourés de $ seront vus plus loin dans la section paramètres)

et son fichier aspx :

clip_image004

Pour en faire un template réutilisable, Visual Studio 2005 ou les versions Express vous proposent un assistant en 4 étapes.

ça se passe dans le menu "File / Export Template..."
(ou "Fichier / Exporter le modèle..." dans la version française)
Etape 1: Choix du type de modèle (projet / élément)

clip_image006

Etape 2: Choix du ou des éléments de template,
Etape 3: Inclure éventuellement des références à des assemblies.
(Ces assemblies devront être présentes sur les postes qui installeront le template)

clip_image009

Etape 4: Options

clip_image011


4 Utilisation du Template

Vos modèles sont affichés par Visual Studio quand vous utilisez le menu "Ajouter un nouvel élément", dans la zone "My Templates".

clip_image013

Le choix "Search Online Templates..." ouvre l'onglet Search dans l'aide de Visual Studio, filtré sur "Templates & Starter kits", rien de plus !

Voici le résultat d'une page créée à partir de mon template :

image

Tout ceci est donc généré en 1 clic et personnalisé pour mon projet ; on devine déjà le temps gagné sur un exemple aussi simple et imaginez que l’on peut bâtir des modèles qui génèrent des choses beaucoup plus avancées...

Si le template ne s'affiche pas dans la fenêtre "Ajouter un nouvel élément", c'est que le fichier .vstemplate n'est peut être pas conforme au schéma Visual Studio.

Il y a une façon simple de vérifier, si Visual Studio rencontre des erreurs lors du chargement des zip de templates, il écrit dans le journal des évènements Windows.

Pour avoir le détail de l'erreur, rendez-vous dans l'Event Viewer (Panneau de configuration / Outils d'Administration), sélectionnez Application et appliquez le filtre Visual Studio – VsTemplate sur l'entrée Event source.

clip_image026

Ainsi vous pourrez avoir accès au détail de l'erreur et résoudre le problème.


5 Utilisation des Paramètres

La partie intéressante avec les templates c'est que vous pouvez utiliser des paramètres. C'est à dire des expressions qui seront remplacées par l'assistant au moment de l'ajout d'un nouvel élément.

Les paramètres s'écrivent entre 2 $ et sont sensibles à la casse.

5.1 Paramètres pré-définis

Par défaut des paramètres pré-définis sont à votre disposition, voici la liste :

  • clrversion : version courante de la common language runtime (CLR).
  • GUID : Pour préciser vos propres GUID (maximum 10).
  • itemname : Nom tapé par l'utilisateur dans la fenêtre "Ajout d'un nouvel élément".
  • safeitemname : Même chose mais sans les caractères "unsafe" (espace, non alpanumérique)
  • projectname : Nom tapé par l'utilisateur dans la fenêtre "Nouveau projet".
  • safeprojectname : Même chose mais sans les caractères "unsafe" (espace, non alpanumérique)
  • machinename : Nom de la machine.
  • registeredorganization : valeur de la clé dans la base de registre : HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization.
  • rootnamespace : Namespace du projet en cours
  • time : Date/heure courante (format JJ/MM/AAAA hh:mm:ss).
  • userdomain : Nom de domaine Windows
  • username : Login de l'utilisateur courant sur le domaine
  • year : année (AAAA)

Exemple d'utilisation de paramètres dans le code d'une classe C# :

namespace $safeprojectname$ { /// <summary> /// description /// </summary> /// <author>$username$</author> /// <date>$time$</date> public partial class $safeitemname$ : Bewise.Web.UI.BasePage { ... } }

L'activation des paramètres est représentée dans le fichier template .vstemplate par la propriété ReplaceParameters="true" de chaque élément <ProjectItem>.

C'est à dire que vous pourrez éventuellement les désactiver pour un fichier donné.

5.2 Paramètres personnalisés

Il est tout à fait possible de créer vos propres paramètres.

Pour créer des paramètres personnalisés, la seule solution est d'éditer le fichier .vstemplate à la main (pour modifier un template, voir paragraphe suivant) afin de rajouter une section <CustomParameters> dans la section <TemplateContent>, ici je définis un paramètre « Service » :

<TemplateContent> ... <CustomParameters> <CustomParameter Name="$Service$" Value="BewiseDev"/> </CustomParameters> </TemplateContent>

Pour l'utiliser, je l'écris comme les autres paramètres entre deux $ dans ma classe template, ici je vais compléter mon cartouche de commentaires XML :

/// <summary> /// description /// </summary> /// <author>$username$ - $Service$</author> /// <date>$time$</date>

Sans surprise, à la création d'une nouvelle page à partir du template on obtient bien le résultat voulu :

/// <summary> /// description /// </summary> /// <author>lduveau - BewiseDev</author> /// <date>03/04/2006 15:58:42</date>


6 Distribuer ses Templates

Votre template est créé, testé et prêt à être utilisé ?

Voyons maintenant comment le distribuer aux autres membres de l'équipe.

Une façon simple serait d'envoyer le zip par mail aux développeurs et leur demander de le placer dans leur répertoire

\My Documents\Visual Studio 2005\Templates\ItemTemplates

Cette solution est envisageable mais pas des plus pratique, surtout pour les mises à jour éventuelles du template.

Une meilleure méthode est de mettre à disposition vos templates dans un endroit commun, un lecteur partagé sur le réseau par exemple, et de configurer Visual Studio pour aller les chercher :

Dans le menu "Tools / Options", sélectionnez "Projects and Solutions".

Là vous pouvez spécifier le nouveau chemin vers les templates pour chaque type (projet, élément), attention de ne pas mettre le même chemin pour les 2 types sinon Visual Studio ne va plus s'y retrouver.

clip_image028


7 Modifier un Template

Pour modifier un template existant, il y a 2 possibilités :

  1. Par le menu "File / New Item..." sélectionnez le template pour l'ouvrir comme un élément normal, vous pouvez ainsi le modifier dans Visual Studio puis refaire un export du Template et écraser l'ancien.
  2. L'autre façon est d'éditer directement le fichier .vstemplate dans le zip du template; pour rappel, il se trouve par défaut dans :
    \My Documents\Visual Studio 2005\Templates\ItemTemplates
    Vous pouvez aussi dézipper le fichier pour modifier les modèles de source puis refaire l'archive zip. C'est la méthode à choisir si vous utilisez des paramètres personnalisés car ils seraient perdus lors d'un export à partir de Visual Studio.

A noter que vous pouvez à loisir modifier les templates internes à Visual Studio (Classe, ClassDiagram, CustomControl, StyleSheet, ...), qui se trouvent dans :

C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates suivi du sous-répertoire selon le langage.

Attention, une version cache de ces éléments se trouve dans le répertoire \ItemTemplatesCache.

clip_image030

8 Conclusion

Nous avons vu dans cet article comment créer, configurer et utiliser les templates de Visual Studio 2005. A vous maintenant de tester cette fonctionnalité et d'en faire une utilisation optimale selon vos projets. Nul doute que cela pourra faire gagner un temps précieux à vous et votre équipe de développement, ainsi qu'améliorer la qualité globale de vos applications grâce à un meilleur contrôle du code et des éléments structurant.

Pour aller plus loin vous pouvez aussi passer à la création de templates de projet afin de proposer un package de départ complet et totalement personnalisé pour vos types d'applications ou votre cœur de métier.

> Tous les articles

Commentaires

aucun commentaire
Page 1/1
   
Connexion
  • Accueil
  • Plan du site
  • Contact
Bewise TV, Blog technique, Webcasts...

Votre carrière et nous

  • Nos offres
  • Votre candidature
Ignorer les liens de navigation > Accueil > Nos Métiers > Solutions Langages et Framework > Détail Article
Ignorer les liens de navigation
Nous
Nos Métiers
Vous Former
Nos Evénements
Nos Références
Nos Activités
Nos Certifications
Nos Chiffres
Le Groupe
Nos Partenaires
On Parle de Nous
Votre Carrière et Nous
Nous Contacter
Défiler vers le haut
Défiler vers le bas
Administration, Système et Communication
Architecture, Méthodes, Industrialisation
Décisionnel et Gestion des Données
Nouvelles Interfaces Utilisateurs
Portail et Travail Collaboratif
Solutions Langages et Framework
Solutions Web Avancées
Défiler vers le haut
Défiler vers le bas
Nos cours
Le Planning
Offres promotionnelles
Défiler vers le haut
Défiler vers le bas
TechDays'12
TechLunch
Windows 8 Camp
Défiler vers le haut
Défiler vers le bas
  • Infos légales
  • Lettre du Regional Director
  • Revue de presse