<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Jean-Marc</title><subtitle type="html" /><id>http://www.dslfactory.org/blogs/jean-marc/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.dslfactory.org/blogs/jean-marc/atom.aspx" /><generator uri="http://communityserver.org" version="2.0.60217.2664">Community Server</generator><updated>2007-08-02T22:26:00Z</updated><entry><title>Le progamme VSIP ... plus int&amp;#233;ressant que ce que je ne pensais avant d'&amp;#234;tre chez MS</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2008/06/03/230.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2008/06/03/230.aspx</id><published>2008-06-03T21:50:00Z</published><updated>2008-06-03T21:50:00Z</updated><content type="html">&lt;P&gt;Avant d’être chez Microsoft, je pensais que le programme VSIP (&lt;A href="http://msdn.microsoft.com/en-gb/vsx2008/products/bb964516.aspx"&gt;Visual Studio Industry Partner&lt;/A&gt;), c’était plutôt pour l’aspect marketing, et pour des d’entreprises qui voulaient vendre leur produit avec Visual Studio, et profiter d’une synergie de vente avec Microsoft. Cet aspect existe. &lt;/P&gt;
&lt;P&gt;Mais il existe également un &lt;STRONG&gt;volet technique&lt;/STRONG&gt; à ce programme, qui pourrait bien vous intéresser si vous vous lancez sérieusement dans l’extensibilité Visual Studio.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Si on voulait faire l’historique du programme VSIP, il faudrait dire qu’au début, pour télécharger le VS SDK, il fallait être membre du programme VSIP. Il y avait alors 3 niveaux : &lt;EM&gt;Affiliate&lt;/EM&gt; (membre de base, sans frais d’entrée dans le programme), &lt;EM&gt;Alliance&lt;/EM&gt; et &lt;EM&gt;Premium&lt;/EM&gt;. &lt;BR&gt;Aujourd’***, le VS SDK est librement téléchargeable, ainsi que les ressources pour l’exploiter. En effet, en plus des entreprises qui créent des produits commerciaux autour de Visual Studio (c’était la raison d’être initiale de VSIP), Microsoft veut également aider techniquement les organisations, les communautés techniques ou les individus, qui veulent étendre Visual Studio et distribuer les extensions a l’intérieur de leur organisation, ou tout simplement, par hobby (si ! si ! ca existe !). C’est tout là qu’est la mission de mon équipe &lt;A href="http://msdn.com/vsx"&gt;VSX&lt;/A&gt;.&lt;BR&gt;Du coup le programme VSIP est réduit à deux niveaux (puisque le niveau Affiliate n’est plus utile que pour demander des PLK et des SLK ... dont il faut bien dire qu'elles embêtent un peu tout le monde). Et la grande nouvelle que j’ai apprise, c’est que même simplement pour des raisons techniques, &lt;STRONG&gt;le niveau Alliance est rudement intéressant&lt;/STRONG&gt;. Il vous offre notamment :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;un contact direct avec les équipes de Microsoft (la notre, mais aussi le cas échéant des équipes du cœur de Visual Studio, de Team Architect, etc …). Ces contacts ont lieu au cours de réunions techniques qu’on appelle Dev clinics, où, en fait, les membres du programme apportent leurs propres problèmes, questions et y trouvent des réponses. Alors, vous me direz c’est a Redmond. Oui, 4 fois par ans c’est à Redmond, mais il y a aussi une DevClinic en marge de la TechEd Europe. Et puis, bon, … ca pourrait venir des DevClinics plus fréquentes en Europe.&lt;BR&gt;
&lt;LI&gt;L’accès a des informations sur le futur de Visual Studio et a des informations business (reserve aux seuls membres)
&lt;LI&gt;L'accès a des builds internes (voir des sources pour le niveau Premium)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Je vous mets ci-dessous un slide qui compare les deux programmes. &lt;/P&gt;
&lt;P&gt;Vous me direz maintenant, ca a un cout. Ben oui, c’est vrai, mais, ..., j’ai oublie de vous dire ... il y a un abonnement d’un an a MSDN Premium (donc avec Team System) d’inclus dans le programme&amp;nbsp;… et donc ... , dans le cas du niveau Alliance, cela n’est finalement plus cher du tout … (et on ne parlera pas du taux de change actuel du dollar). Hummm ....&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;A href="/photos/jean-marc/picture232.aspx" target=_blank&gt;&lt;/A&gt;&lt;IMG src="/photos/jean-marc/images/232/original.aspx" border=0&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=230" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Mes premiers pas chez Microsoft - UK ... si on peut dire</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2008/06/03/229.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2008/06/03/229.aspx</id><published>2008-06-03T20:23:00Z</published><updated>2008-06-03T20:23:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Certains d’entre vous le savent déjà. Peut-être tous : j’ai maintenant un &lt;A href="http://blogs.msdn.com/jmprieur"&gt;blog &lt;/A&gt;sur MSDN. Bon ! le contenu est en anglais, et ca ne va pas m’empêcher d’écrire sur celui-ci, en français.&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;En effet, je travaille pour Microsoft UK, à Cambridge, depuis le 25 mars, mais je n’ai pas encore eu (enfin, pris) le temps de vous l’annoncer, et voici pourquoi. En fait, à vrai dire, j’ai commencé par sécher la première semaine, parce que le soir même de mon départ de la &lt;A href="http://www.defense.gouv.fr/dga/"&gt;DGA&lt;/A&gt; je rentrais d’urgence a l’hôpital (militaire bien sur : d'ailleurs cet &lt;A href="http://www.defense.gouv.fr/sante/enjeux_defense/le_soutien_des_forces/le_reseau_hospitalier/hia_saint_anne_a_toulon"&gt;hôpital&lt;/A&gt; est vraiment génial, et le personnel soignant est dévoué et compétent ... je n'ai pas trouvé que c'était si fréquent, alors je voulais le dire, au passage). Bon ! Alors vous imaginez !&amp;nbsp;commencer un nouvel emploi, et dans un autre pays en plus, et ne pas être là au début ! Il a fallu que ca tombe sur moi !! Evidemment cela a bien fait rire mes petits copains de MS France ! Mais ca c’est bien passe quand même. Je ne dirais pas que chez Microsoft de telles situations sont prevues, mais, bon, ils ont gere. Je me demande ce que ca aurait donne le meme cas dans la DGA ?&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;Ensuite, quand je dis que je travaille à Cambridge, ce n’est pas tellement vrai non plus. Au bout de deux semaines j’étais à Redmond, pour deux semaines. En effet, j’appartiens a l’équipe &lt;A href="http://msdn.microsoft.com/en-us/vsx/cc303097.aspx"&gt;Visual Studio Ecosystem&lt;/A&gt;, (notre portail est justement &lt;A href="http://msdn.com/vsx"&gt;http://msdn.com/vsx&lt;/A&gt;) et, si j'ai l'honneur de partager mon bureau avec &lt;A href="http://blogs.msdn.com/stuart_kent"&gt;Stuart Kent &lt;/A&gt;et &lt;A href="http://blogs.msdn.com/stevecook"&gt;Steve Cook&lt;/A&gt; (entre autres), mon manager, &lt;A href="http://blogs.msdn.com/jameslau"&gt;James Lau&lt;/A&gt;, est aux US … quand on peut faire simple, ce n’est pas intéressant pour Jean-Marc !&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;BR&gt;Apres mon séjour aux US (ou j'ai trouvé qu'il faisait bien froid pour une fin avril), je me suis laisse embringuer dans un Tour d’Europe VSX, avec James, justement. On en parle sur nos blogs (enfin surtout lui, parce que moi j’écris quand même moins et moins vite en anglais qu’en français, quoi que, avec mon clavier anglais, c’est assez difficile pour les accents et les c cédilles). On s’amuse beaucoup, et notre public a l’air d’aimer. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Du coup j’ai appris plein de choses. Et en particulier quelque-chose qui pourrait vous intéresser sur le &lt;A HREF="/blogs/jean-marc/archive/2008/06/03/230.aspx"&gt;programme VSIP&lt;/A&gt;.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=229" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>DslFactory en session pleini&amp;#232;re aux Techdays</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2008/03/05/220.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2008/03/05/220.aspx</id><published>2008-03-06T05:02:00Z</published><updated>2008-03-06T05:02:00Z</updated><content type="html">&lt;P&gt;Sébastien a eu l'honneur de participer à la session pleinière du 3ème jour des &lt;A href="http://www.microsoft.com/france/mstechdays/"&gt;Techdays&lt;/A&gt;, le 13 février dernier.&lt;/P&gt;
&lt;P&gt;Il illustrait une partie présentée par Bernard Ourghanlian, directeur technique et de la sécurité de Microsooft France à qui il donnait la réplique. Il a ainsi présenté, devant plus de&amp;nbsp;4000 personnes,&amp;nbsp;un DSL spécifique de comportements dynamiques de simulation, créé par la &lt;A href="http://www.defense.gouv.fr/marine"&gt;Marine Nationale&lt;/A&gt; et la &lt;A href="http://www.defense.gouv.fr/dga"&gt;Délégation Générale pour l'Armement&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/jean-marc/images/219/original.aspx" target=_blank&gt;&lt;IMG src="/photos/jean-marc/images/219/640x424.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;J'ai hâte de voir les webcasts !&lt;/P&gt;&lt;A HREF="/photos/jean-marc/picture219.aspx" target=_blank&gt;&lt;/A&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=220" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Lancement de la &amp;quot;Visual Studio Gallery&amp;quot; </title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2008/02/27/Lancement_de_la_Visual_Studio_Gallery.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2008/02/27/Lancement_de_la_Visual_Studio_Gallery.aspx</id><published>2008-02-28T05:00:00Z</published><updated>2008-02-28T05:00:00Z</updated><content type="html">&lt;P&gt;L'équipe "&lt;SPAN&gt;Visual Studio Ecosystem" de Microsoft&amp;nbsp;vient&amp;nbsp;de lancer officiellement, hier, la "Visual Studio Gallery" que vous pourrez trouver en &lt;A href="http://visualstudiogallery.com/"&gt;http://visualstudiogallery.com/&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;C'est un portail dans lequel sont référencés, regroupés par catégorie, auteur, etc ... tout un tas de produits ou exemples de personalisation et d'extensibilité Visual Studio. Certains sont gratuits et libres, d'autres des versions d'évaluation, et d'autres, encore des produits commerciaux. Cela va des macros, snippets, aux langages graphiques DSL en passant par des packages etc ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Evidemment, nous sommes présents, !&amp;nbsp;avec, pour le moment,&amp;nbsp;le WCF Designer, et la bibliothèque DslFactory.Utilities, et d'autres exemples vont venir les compléter dans les semaines qui suivent.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Notez enfin que l'équipe VSX en a profité pour changer le look de son portail : &lt;A href="http://msdn.com/vsx"&gt;http://msdn.com/vsx&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=217" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Migrer un DSL de Visual Studio 2005 vers Visual Studio 2008</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2008/01/12/211.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2008/01/12/211.aspx</id><published>2008-01-12T18:21:00Z</published><updated>2008-01-12T18:21:00Z</updated><content type="html">&lt;H3&gt;Les DSL çà se migre bien !&lt;/H3&gt;
&lt;P&gt;Tout d'abord, je voudrais vous souhaiter une excellente année 2008. Nous avons été un peu négligents, ces temps-ci, vis à vis de la communauté. Nous étions, Alain, Sébastien et moi en train de nous remettre du VSX Day (et çà vous a laissé le temps d'en digirer tout le contenu ;-)).&lt;/P&gt;
&lt;P&gt;Mais il était prévu qu'on aborde un peu plus en détails le VS SDK de VS 2008 en début d'année, alors allons-y !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Nico a demandé, (fin novembre - honte à nous !), &lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;Est ce que l'on a une idée de la compatibilité des DSL fait en VS 2005 avec VS 2008 ? &lt;BR&gt;Pour l'instant, l'installation ne fonctionne pas (le setup généré réclame VS 2005). &lt;BR&gt;Faut-il recompiler le projet en VS 2008 ? Est ce que tout le méta-modèle est compatible ?&lt;/EM&gt;"&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;Je viens seulement de m'intéresser à la migration de mon plus gros DSL (en terme de classes, mais çà, ce n'est pas très important, puisque c'est du code qui est généré généré, mais surtout en terme de volume code custom).&amp;nbsp; En supposant que le SDK 2008 est installé dans &lt;FONT face="Courier New"&gt;C:\Program Files\Microsoft Visual Studio 2008 SDK&lt;/FONT&gt;, j'ai suivi la procédure expliquée dans le fichier &lt;FONT face="Courier New"&gt;C:\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\DSLTools\MigrationGuide.htm&lt;/FONT&gt;, et çà m'a pris même pas deux heures, j'ai eu une nouvelle PLK en 5 minutes, et çà a parfaitement marché du premier coup. Mes modèles existants se sont parfaitement ouverts dans VS 2008, et tout fonctionne comme avant. Je m'y attendais, pour tout vous dire, mais l'équipe DSLTools a encore fait fort. 
&lt;P&gt;
&lt;P&gt;Je suis donc en mesure de répondre : 
&lt;P&gt;"&lt;EM&gt;Est ce que l'on a une idée de la compatibilité des DSL fait en VS 2005 avec VS 2008 ? &lt;/EM&gt;" oui : elle me semble parfaite. 
&lt;P&gt;&lt;EM&gt;"Faut-il recompiler le projet en VS 2008 ?" &lt;/EM&gt;Oui, mais c'est un peu plus compliqué que çà. 
&lt;P&gt;&lt;EM&gt;"Est ce que tout le méta-modèle est compatible ?&lt;/EM&gt;" le .dsl l'est. Le méta-modèle aussi, il le semble ! 
&lt;P&gt;
&lt;H3&gt;La procédure de migration - retour d'expérience&lt;/H3&gt;
&lt;P&gt;Alors pourquoi çà m'a pris quand même deux heures ? je vais l'expliquer, et pour çà je vais migrer avec vous un autre DSL que vous connaissez : le DSL &lt;A href="http://www.codeplex.com/DslFactoryUtilities" target=_blank&gt;WCF Language&lt;/A&gt;. 
&lt;P&gt;
&lt;P&gt;Le guide de migration nous dit qu'il faut : 
&lt;P&gt;&lt;STRONG&gt;Première étape : créer un nouveau DSL minimal&lt;/STRONG&gt; avec Visual Studio 2008 en lui donnant le même nom de DSL et le même nom de namespace que le DSL à migrer. Ces informations peuvent se trouver dans le fichier &lt;FONT face="Courier New"&gt;dsldefinition.dsl&lt;/FONT&gt; original (ou encore dans les propriétés du DSL que vous trouverez dans la fenêtre des propriétés en cliquant sur le fond diagramme que constitue la définition de votre DSL&amp;nbsp; : propriétés &lt;FONT face="Courier New"&gt;Name (WcfLanguage)&lt;/FONT&gt; et &lt;FONT face="Courier New"&gt;Namespace (DslFactory.WcfLanguage)&lt;/FONT&gt;).&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A HREF="/ControlPanel/Blogs/$Properties3.gif"&gt;&lt;IMG src="/photos/jean-marc/images/212/original.aspx" border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Première surprise&lt;/STRONG&gt; : la solution a changé, on a des fichiers en plus : &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;ils concernent la suppression de warning lors de l'analyse statique de code. 
&lt;LI&gt;Par ailleurs, le répertoire &lt;FONT face="Courier New"&gt;CtcComponents&lt;/FONT&gt; et son horrible fichier &lt;FONT face="Courier New"&gt;Commands.ctc&lt;/FONT&gt; du projet &lt;FONT face="Courier New"&gt;DslPackage&lt;/FONT&gt; a été remplacé par un fichier &lt;FONT face="Courier New"&gt;Commands.vsct&lt;/FONT&gt; qui décrit les menus au format XML.&lt;BR&gt;&lt;A HREF="/ControlPanel/Blogs/$GeneratedSolution3.gif"&gt;&lt;IMG src="/photos/jean-marc/images/213/original.aspx" border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Deuxième surprise&lt;/STRONG&gt; : si vous exécutez le DSL, vous verrez que les formes sont plus belles, et plus fines qu'auparavant (les icônes par défaut ont également changé)&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A HREF="/ControlPanel/Blogs/$image3.png"&gt;&lt;IMG src="/photos/jean-marc/images/214/original.aspx" border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Deuxième étape : remplacer les fichiers&lt;/STRONG&gt; &lt;FONT face="Courier New"&gt;dsldefinition.dsl&lt;/FONT&gt; et &lt;FONT face="Courier New"&gt;dsldefinition.dsl.diagram&lt;/FONT&gt; de la nouvelle solution sous Visual Studio 2008, par ceux de la version 2005, ainsi que le &lt;STRONG&gt;contenu des répertoires &lt;FONT face="Courier New"&gt;Resources&lt;/FONT&gt;&lt;/STRONG&gt; des deux projets &lt;FONT face="Courier New"&gt;Dsl&lt;/FONT&gt; et &lt;FONT face="Courier New"&gt;DslPackage&lt;/FONT&gt;. C'est important parce que les ressources, notamment les images, seront référencées par le code généré à partir du &lt;FONT face="Courier New"&gt;.dsl&lt;/FONT&gt;. &lt;/P&gt;
&lt;P&gt;Il est possible que vous ayiez également à ajouter des références au projets si vous utilisez des &lt;EM&gt;Domain Types&lt;/EM&gt; externes (c'est le cas pour le &lt;FONT face="Courier New"&gt;WcfLanguage&lt;/FONT&gt; où nous utilisons les types &lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" color=#008080&gt;&lt;FONT face="Courier New"&gt;AdressFilterMode&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; de &lt;FONT face="Courier New"&gt;System.ServiceModel&lt;/FONT&gt; et &lt;FONT face="Courier New"&gt;&lt;FONT face="Courier New" color=#008080&gt;&lt;FONT face="Courier New"&gt;IsolationLevel&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; de &lt;FONT face="Courier New"&gt;System.Transactions&lt;/FONT&gt;, il nous faut donc référencer ces deux assemblages. &lt;/P&gt;
&lt;P&gt;Si vous avez des propriétés dont le &lt;FONT face="Courier New"&gt;Kind&lt;/FONT&gt; est &lt;FONT face="Courier New"&gt;CustomStorage&lt;/FONT&gt;, vous devrez aussi &lt;STRONG&gt;recopier du &lt;EM&gt;code custom&lt;/EM&gt;&lt;/STRONG&gt;. Comme le WCF Language est bien structuré, il nous suffit d'ajouter le répertoire "&lt;FONT face="Courier New"&gt;CustomCode&lt;/FONT&gt;", ainsi que le fichier &lt;FONT face="Courier New"&gt;Resources.resX&lt;/FONT&gt; que nous avions ajouté dans le répertoire de solution &lt;FONT face="Courier New"&gt;Properties &lt;/FONT&gt;en lui donnant comme propriété "Custom Tool" la valeur &lt;FONT face="Courier New"&gt;ResXFileCodeGenerator&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/ControlPanel/Blogs/$DslCustomCode3.gif"&gt;&lt;IMG src="/photos/jean-marc/images/215/original.aspx" border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Troisième étape : l'ajout de références&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Si votre projet était simple, vous n'auriez éventuellement aucune référence à ajouter, ou bien uniquement des références à des assemblages qui ne sont pas concernés par le changement de Visual Studio. Par contre, dans le cas du WcfLanguage, nous avons des références à &lt;FONT face="Courier New"&gt;DslFactory.Utilities&lt;/FONT&gt; (qui aura été migré de la même façon), &lt;FONT face="Courier New"&gt;EnvDTE&lt;/FONT&gt;, et &lt;FONT face="Courier New"&gt;EnvDTE80&lt;/FONT&gt;. Il faut donc ajouter ces références aux assemblages EnvDTE, mais en prenant bien garde à ce que cela soit ceux de &lt;FONT face="Courier New"&gt;Program Files\Microsoft Visual Studio 9 &lt;/FONT&gt;et pas de Visual Studio 8. Dans le cas du WCF Language, il faut aussi ajouter &lt;FONT face="Courier New"&gt;VSLangProj&lt;/FONT&gt; en prenant les mêmes précautions (même si l'assemblage de même numéro de version peut aussi se trouver en d'autres endroits, comme dans Visual Studio 8) [il faut vous dire que sur ma machine, j'ai encore conservé Visual Studio 2005 et son VS SDK 4.0 à coté de Visual Studio 2008 et son VS SDK 1.0, c'est pourquoi je pourrais me tromper en ajoutant les références. Si vous n'avez que le VS SDK 2008, vous n'aurez pas ce problème]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Quatrième étape : transformer tous les templates&lt;/STRONG&gt;, &lt;STRONG&gt;générer le DSL&lt;/STRONG&gt; et l'exécuter.&lt;/P&gt;
&lt;P&gt;Et çà marche !&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Quatrième étape : Migrer les boutons, menus contextuels&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Il nous reste une chose à faire : notre DSL n'a pas encore retrouvé les menus contextuels sur ses formes. Dans la solution pour Visual Studio 2005, deux fichiers étaient concernés : &lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;GeneratedCmd.tt&lt;/FONT&gt; qui contenait la définition des ids des boutons (generate, showAsRole, etc ...)&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;#@&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;Dsl&lt;/SPAN&gt; &lt;SPAN&gt;processor&lt;/SPAN&gt;&lt;SPAN&gt;="DslDirectiveProcessor"&lt;/SPAN&gt; &lt;SPAN&gt;requires&lt;/SPAN&gt;="fileName='..\..\Dsl\DslDefinition.dsl'" &lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;#@&lt;/SPAN&gt;&lt;SPAN&gt; &lt;B&gt;&lt;SPAN&gt;include&lt;/SPAN&gt;&lt;/B&gt; &lt;SPAN&gt;file&lt;/SPAN&gt;="DslPackage\GeneratedCmd.tt" &lt;SPAN&gt;#&amp;gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; guidCmdSet { 0xe642d46e, 0x89bf, 0x4dd6, { 0xbe, 0x00, 0x81, 0x8f, 0x27, 0x92, 0xfc, 0x1b } }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; generate 0x100&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; showAsRole 0x101&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; showAsMember 0x102&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; hide 0x103&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; showHiddenMembers 0x104&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; showUsedConcepts 0x105&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;et &lt;FONT face="Courier New"&gt;Commands.ctc&lt;/FONT&gt; du répertoire &lt;FONT face="Courier New"&gt;CtcComponents&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"stdidcmd.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"vsshlids.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"msobtnid.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"virtkeys.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"DSLToolsCmdID.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;"..\GeneratedCode\GeneratedCmd.h"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDS_SECTION guidPkg&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MENUS_BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;GENERATED_MENUS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Add additional menu definitions here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// NewMenu, Relative to Group, Priority, Type, Name, Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MENUS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NEWGROUPS_BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;GENERATED_GROUPS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Add additional menu group definitions here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// NewGroup, Parent Group, Priority;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NEWGROUPS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;BUTTONS_BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;GENERATED_BUTTONS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Add additional button definitions here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Command, Parent Group, Priority, Image, Type, Visibility, Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:generate, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Generate code"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showAsRole, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show as a role"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showAsMember, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show as a member"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:hide, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Hide the member"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showHiddenMembers, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show hidden members"&lt;/SPAN&gt; ;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showUsedConcepts, guidCmdSet:grpidContextMain,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show used concepts"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showAsRole, guidCmdSet:grpidExplorerMenuGroup,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show as a role"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:showAsMember, guidCmdSet:grpidExplorerMenuGroup,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Show as a member"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;guidCmdSet:hide, guidCmdSet:grpidExplorerMenuGroup,&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;0x0200, OI_NOID,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;BUTTON,&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DIS_DEF, &lt;SPAN&gt;"Hide the member"&lt;/SPAN&gt; ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;BUTTONS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;BITMAPS_BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;BITMAPS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDUSED_SECTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDUSED_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDPLACEMENT_SECTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;GENERATED_CMDPLACEMENT&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Add additional command placements here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Command, Group, Priority;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;CMDPLACEMENT_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;VISIBILITY_SECTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;GENERATED_VISIBILITY&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;// Add additional visibility definitions here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Command, GUID when visible;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;VISIBILITY_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;KEYBINDINGS_SECTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Command, when available, emulation, keystate;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;KEYBINDINGS_END&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Ces deux fichiers étaient assez embêtants à maintenir parce que non seulement le format du fichier .ctc n'était pas très intuitif, mais en plus il fallait garder la cohérence entre les deux.&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Avec le VS SDK 2008, le fichier .ctc a été remplacé par le fichier Commands.vsct qu'il nous faut donc remplir&lt;/P&gt;
&lt;P class=MsoNormal&gt;Avant d'ajouter les commandes, ce fichier a le contenu suivant :&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN&gt;xml&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;version&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;1.0&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;encoding&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;utf-8&lt;/SPAN&gt;"&lt;SPAN&gt;?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandTable&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;xmlns&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;xmlns:xs&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;http://www.w3.org/2001/XMLSchema&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; This file contains custom command definitions. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; NOTE: Each time commands are added or changed, the "version" parameter to the &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; ProvideMenuResource attribute in Shell\Package.tt should be incremented. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; This causes Visual Studio to re-merge the menu definitions for the package. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; Otherwise, changes won't take effect until the next time devenv /setup is run. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;stdidcmd.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;vsshlids.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;msobtnid.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;virtkeys.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;DSLToolsCmdID.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;GeneratedCode\GeneratedVsct.vsct&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;package&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidPkg&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandTable&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Il nous suffit donc de migrer le contenu du .ctc et du .h dans le .vsct : &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;D'abord les identifiants des commandes.En s'aidant du fichier &lt;FONT face="Courier New"&gt;GeneratedVSCT.vsct&lt;/FONT&gt; généré, on obtient la fin du fichier suivante où les #define ont été remplacés par des IDSymbol. Le guid du guidCmdSet est recopié tel quel du &lt;FONT face="Courier New"&gt;GeneratedVSCT.vsct&lt;/FONT&gt; :&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;package&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidPkg&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Symbols&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;GuidSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;{78ec39e2-7285-479d-8796-f465a1f4563e}&lt;/SPAN&gt;"&lt;SPAN&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;generate&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x100&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showAsRole&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x101&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;hide&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x103&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showHiddenMembers&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x104&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showUsedConcepts&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x105&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;GuidSymbol&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Symbols&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandTable&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ensuite, nous écrivons les boutons :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A titre d'exemple, la ligne suivante du .ctc :&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;FONT face="Courier New"&gt;guidCmdSet:generate, guidCmdSet:grpidContextMain,&amp;nbsp; 0x0200, OI_NOID,&amp;nbsp;&amp;nbsp;&amp;nbsp; BUTTON,&amp;nbsp;&amp;nbsp;&amp;nbsp; DIS_DEF, "Generate code" ;&lt;/FONT&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;devient le texte en gras suivant :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;package&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidPkg&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Buttons&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;generate&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Generate code&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Buttons&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;Pour finir, le fichier devient :&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN&gt;xml&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;version&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;1.0&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;encoding&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;utf-8&lt;/SPAN&gt;"&lt;SPAN&gt;?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandTable&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;xmlns&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;xmlns:xs&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;http://www.w3.org/2001/XMLSchema&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; This file contains custom command definitions. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; NOTE: Each time commands are added or changed, the "version" parameter to the &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; ProvideMenuResource attribute in Shell\Package.tt should be incremented. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; This causes Visual Studio to re-merge the menu definitions for the package. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; Otherwise, changes won't take effect until the next time devenv /setup is run. &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;stdidcmd.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;vsshlids.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;msobtnid.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;virtkeys.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Extern&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;DSLToolsCmdID.h&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Include&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;href&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;GeneratedCode\GeneratedVsct.vsct&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;package&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidPkg&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Buttons&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;generate&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Generate code&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showAsRole&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show as a role&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showAsMember&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show as a member&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;hide&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Hide this member&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showHiddenMembers&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show hidden members&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showUsedConcepts&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show used concepts&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showAsRole&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show as a role&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showAsMember&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show as a member&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;showAsMember&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;priority&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x0200&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;Button&lt;/SPAN&gt;"&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Parent&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;guid&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;grpidContextMain&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultDisabled&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DefaultInvisible&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DynamicVisibility&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandFlag&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;Show as a member&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;ButtonText&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Strings&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Button&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Buttons&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Commands&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;Symbols&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;GuidSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;guidCmdSet&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;{78ec39e2-7285-479d-8796-f465a1f4563e}&lt;/SPAN&gt;"&lt;SPAN&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;generate&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x100&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showAsRole&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x101&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;hide&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x103&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showHiddenMembers&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x104&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;IDSymbol&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;SPAN&gt;showUsedConcepts&lt;/SPAN&gt;"&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;"&lt;SPAN&gt;0x105&lt;/SPAN&gt;"&lt;SPAN&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;GuidSymbol&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;Symbols&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;CommandTable&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Et vous voyez, le temps d'écrire tout çà ... c'est l'essentiel du temps pris.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Pensez bien, dans Package.tt à incrémenter le numéro de menu et de toolboxItems, pour que Visual Studio prenne en compte les nouveautés :&lt;/P&gt;&lt;FONT face="Courier New"&gt;[VSShell::ProvideMenuResource("1000.ctmenu", 2)]&lt;BR&gt;[VSShell::ProvideToolboxItems(2)] &lt;/FONT&gt;
&lt;P&gt;
&lt;P&gt;Construisez le DSL, exécutez le : çà marche immédiatement :-) ! 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Cinquième étape demander une PLK.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Cette étape aussi a été grandement améliorée : il faut toujours aller sur le site &lt;A href="http://www.vsipmembers.com/"&gt;www.vsipmembers.com&lt;/A&gt;, comme auparavant, pour demander la PLK. Par contre la grande nouveauté c'est que maintenant, on obtient la PLK immédiatement, et pas au bout de quelques jours.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sixième étape, recréer un programme d'installation&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Comme auparavant, on recrée un setup pour DSL, et on recopie éventuellement dans le contenu spécial du .dslsetup. Dans notre cas, il ne faut pas oublier DslFactory.Utilities comme SupportingAssembly, et les vsItemTemplate sont ajoutés avec plusieurs localeId (au moins l'américain et le Français ! : 1033 et 1036).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Un autre conseil&lt;/H3&gt;
&lt;P&gt;En recopiant le code custom du projet dslpackage, ne pas oublier les ProjectItemTemplates du projet dslpackage.&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;
&lt;H3&gt;Conclusion&lt;/H3&gt;
&lt;P&gt;J'ai essayé de montré dans ce billet qu'il était vraiment simple de migrer un DSL de Visual Studio 2005 à Visual Studio 2008. Simple, et sans mauvaise surprise. J'ai apprécié le .vsct qui, notamment grâce à l'Intellisense, sont faciles à écrire, et faciles à lire ... très intuitifs.&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/jean-marc/picture213.aspx" target=_blank&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;A HREF="/photos/jean-marc/picture215.aspx" target=_blank&gt;&lt;/A&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=211" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Des DSL dans Rosario</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/12/12/206.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/12/12/206.aspx</id><published>2007-12-12T22:00:00Z</published><updated>2007-12-12T22:00:00Z</updated><content type="html">&lt;P&gt;Vous le savez peut-être, un CTP de Rosario a été &lt;A href="http://blogs.msdn.com/jeffbe/archive/2007/11/28/november-rosario-ctp-now-available.aspx" target=_blank&gt;publié&lt;/A&gt; la semaine dernière (Novembre 2007) sous forme d'une VPC. J'ai un peu joué avec la VPC, et me suis notamment intéressé à deux nouveaux types de diagrammes, proches de ceux d'UML :&lt;/P&gt;
&lt;P&gt;- le diagramme de classe logique&lt;/P&gt;
&lt;P&gt;- le diagramme de séquence.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Actuellement, il est possible d'ajouter un diagramme de classe logique (Logical Class Diagram), et lui ajouter des formes :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;soit par la toolbar 
&lt;LI&gt;soit en les envoyant depuis un physical Class Diagram (.cd classique depuis VS 2005), par une commande contextuelle sur les classes ou interfaces de ces Physical Class Diagrams.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A HREF="/photos/jean-marc/images/204/original.aspx" target=_blank&gt;&lt;IMG src="/photos/jean-marc/images/204/500x344.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Il est également possible d'ajouter un diagramme de séquence&lt;/P&gt;
&lt;P&gt;&lt;A HREF="/photos/jean-marc/images/205/original.aspx" target=_blank&gt;&lt;IMG src="/photos/jean-marc/images/205/500x344.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A partir d'une classe ou interface du diagramme de classes logique, on peut, pour le moment :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;la mettre à jour depuis une classe d'un diagramme de classe physique (donc depuis du code) 
&lt;LI&gt;l'envoyer vers le diagramme de séquence (pour créer une instance d'une ligne de vie).&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;A partir d'un appel synchrone du diagramme de séquence, on peut l'associer à une méthode de la classe représentée par la ligne de vie cible de l'appel synchrone, dans le diagramme de classe logique. On peut aussi ajouter une nouvelle méthode.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Alain m'a dit qu'il avait vu des possibilités de génération de code, mais pour le moment, je ne les ai pas trouvées. Mais il est certain que nous aurons, à terme, des diagrammes qui ressemblent aux diagrammes UML, mais qui servent à générer du code, et pourront être mis à jour à partir du code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;En tout état de cause, on trouve déjà deux DSL (d'autres sont à venir, et les diagrammes d'architecture d'applications qu'on avait déjà dans Team Architect 2005 sont toujours là), et ils communiquent entre eux ... j'ai hâte de tester les prochains CTP, mais çà promet !&lt;/P&gt;&lt;A HREF="/photos/jean-marc/images/205/original.aspx" target=_blank&gt;&lt;/A&gt;&lt;A HREF="/photos/jean-marc/picture204.aspx" target=_blank&gt;&lt;/A&gt;&lt;A HREF="/photos/jean-marc/images/204/original.aspx" target=_blank&gt;&lt;/A&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=206" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Visual Studio 2008 RTM est disponible, et le VS SDK 2008 V1 &amp;#233;galement</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/11/21/199.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/11/21/199.aspx</id><published>2007-11-21T16:56:00Z</published><updated>2007-11-21T16:56:00Z</updated><content type="html">&lt;P&gt;La version finale de Visual Studio 2008 est sortie hier. Elle est disponible pour les abonnés &lt;A href="http://msdn2.microsoft.com/subscriptions"&gt;MSDN&lt;/A&gt;. Dans la foulée, l'équipe VSX a immédiatement, (et c'est à noter parce que c'est une première dans l'histoire de Visual Studio),&amp;nbsp;publié la &lt;A href="http://blogs.msdn.com/vsxteam/archive/2007/11/21/Visual-Studio-2008-SDK-1.0-and-Visual-Studio-2008-Shell-released.aspx"&gt;première version du SDK&lt;/A&gt; pour VS 2008. Ils ont également publié&amp;nbsp;les runtimes gratuits&amp;nbsp;pour le fameux VS Shell 2008, qui vous permet, dans le mode isolé, d'héberger vos packages dans un exécutable autonome et que vous pouvez distribuer librement. Nous avions présenté cette possibilité il y a un peu plus d'un mois,&amp;nbsp;en fin de VSX Day ... elle vous est maintenant accessible !&lt;/P&gt;
&lt;P&gt;Pour en savoir plus :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;voir le &lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=69a96c41-38c6-4a14-a8c5-a3e8df95228b"&gt;WebCast&lt;/A&gt; sur le VS SDK 2008, tourné pendant le VSX Day 07 
&lt;LI&gt;voir la &lt;A HREF="/vsxday07/7.%20VSX%20Day%202007%20-%20VS%202008.pptx"&gt;présentation Powerpoint&lt;/A&gt; correspondante&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=199" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Les WebCasts de toutes les sessions VSX Day sont disponibles !</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/11/13/191.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/11/13/191.aspx</id><published>2007-11-13T13:16:00Z</published><updated>2007-11-13T13:16:00Z</updated><content type="html">&lt;P&gt;Après les &lt;A HREF="/blogs/jean-marc/archive/2007/10/18/180.aspx"&gt;&lt;FONT color=#02469b&gt;présentations&lt;/FONT&gt;&lt;/A&gt; mises en ligne le lendemain de l'événement, et les &lt;A href="/blogs/jean-marc/archive/2007/10/22/183.aspx"&gt;exemples de code &lt;/A&gt;le week-end suivant, ce sont, pour finir&amp;nbsp;les Webcasts des sessions de la journée VSX Day sont disponibles sur le site "Vision" de Microsoft France :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=65c1b342-2079-4c71-b0a4-e799dffd2610"&gt;Introduction et présentation du fil rouge de cette journée&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=997326c8-d3cf-470b-9b13-e555e0667fa0"&gt;Personnalisation de Visual Studio&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=a4438d26-4bf3-46b2-9fbd-a23e391ae050"&gt;API d'Automation&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=07496937-64b2-480b-9533-da50506ab262"&gt;Tour du Visual Studio SDK&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=e962cbfb-740d-4891-9187-8fa258b8f6a5"&gt;Extensibilité Visual Studio Team System&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=b8b87107-4689-4a7e-a8d4-43081ffc6c14"&gt;Créer des packages Visual Studio&lt;/A&gt; : pourquoi, et comment ce n’est finalement pas si compliqué quand on a les bons outils 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=b2871cb8-0a1d-4b0e-818d-4ccff2ebef7b"&gt;Présentation de l'équipe produit Visual Studio&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=1ad89a23-0c75-4ea8-8cea-73fafcee4199"&gt;Guidance Automation Toolkit (GAT)&amp;nbsp;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=627de8c8-b23f-42d1-846e-42e5e4ae02cc"&gt;Les Domain Specific Languages (DSL) et leur mise en œuvre dans Visual Studio via les DSL Tools&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=0c250811-5fb3-4a25-96e6-29795bce9d1c"&gt;Les component Model&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=69a96c41-38c6-4a14-a8c5-a3e8df95228b"&gt;Visual Studio 2008 SDK&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.microsoft.com/france/vision/webcastmsdn.aspx?eid=3e072553-f170-4914-9e2e-91d8090aba0a"&gt;Conclusion&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Notez que ces liens vous amèneront à des listes de WebCasts plus détaillés (il faut fouiller un peu pour trouver certains WebCasts pour le moment). Nous allons&amp;nbsp;améliorer cela rapidement.&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=191" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Les nouvelles VPC de VS 2008 Beta2 sont disponibles.</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/31/190.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/31/190.aspx</id><published>2007-10-31T08:38:00Z</published><updated>2007-10-31T08:38:00Z</updated><content type="html">&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=blocked::http://go.microsoft.com/?linkid=7171918 href="http://go.microsoft.com/?linkid=7171918"&gt;&lt;FONT color=#800080&gt;Visual Studio Team System 2008 Beta 2 Team Suite VPC&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=blocked::http://go.microsoft.com/?linkid=7171920 href="http://go.microsoft.com/?linkid=7171920"&gt;Visual Studio Team System 2008 Beta 2 Team Suite &amp;amp; Team Foundation Server VPC&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=190" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>[IMPORTANT] Les VPC de Visual Studio 2008 Beta2 expirent le 1er novembre 2007 (et non le 15 mars 2008)</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/29/188.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/29/188.aspx</id><published>2007-10-29T17:39:00Z</published><updated>2007-10-29T17:39:00Z</updated><content type="html">&lt;P&gt;Cette information est importante pour ceux d'entre vous qui ont testé Visual Studio 2008 BETA 2 sous forme de VPC (Machine virtuelle) : celles-ci expireront le 1er novembre au lieu du 15 mars comme cela était annoncé. Apparemment, Microsoft chercherait encore pourquoi !&lt;/P&gt;
&lt;P&gt;En tous cas, il vaudrait mieux faire une copie de tous vos projets avant le 1er novembre. sans quoi vous aurez un message vous annonçant que votre VPC a atteint la date limite d'évaluation (deWindows !). &lt;/P&gt;
&lt;P&gt;A savoir : &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Chaque fois que vous rebooterez votre VPC après le 1er novemvre, vous aurez droit à 2 heures d'utilisation par reboot (c'est ok puor les scénarios démo).&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Si vous avez évalué Team Fundation Server Beta2, voyez l'aticle "moving Team Fundation Server" &lt;A href="http://msdn2.microsoft.com/en-us/library/ms404879(vs.90).aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms404879(vs.90).aspx&lt;/A&gt;&amp;nbsp;pour savegarder vos données.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Dans tous les cas, si vous le désirez, vous pouvez upgrader votre Windows 2003 server avec une license que vous auriez par ailleurs&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Microsoft va fournir en début de cette semaine de nouvelles VPC utlilisables plus longtemps.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Pour plus d'information je vous conseille d'aller voir le blog&amp;nbsp;le Jeff Beehler qui a passé les quelques derniers jours à étudier le problème(&lt;A href="http://blogs.msdn.com/jeffbe/archive/2007/10/27/update-on-expiring-vs2008-beta2-vpcs.aspx"&gt;http://blogs.msdn.com/jeffbe/archive/2007/10/27/update-on-expiring-vs2008-beta2-vpcs.aspx&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;N'hésitez pas à propager cette nouvelle autour de vous.&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=188" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>VSD Day 07 - les exemples de code</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/22/183.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/22/183.aspx</id><published>2007-10-22T19:27:00Z</published><updated>2007-10-22T19:27:00Z</updated><content type="html">&lt;P&gt;Après les &lt;A href="/blogs/jean-marc/archive/2007/10/18/180.aspx"&gt;présentations&lt;/A&gt; mises en ligne la semaine dernière, voici les exemples de code.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;1. Fil Rouge&lt;/STRONG&gt; : La démo de Sébastien, avec les 3 exemples de .chm du fil rouge avant et après le passage des Add-in de SandCastle et de SandCastleHelpFileBuilder &lt;A title='Exemple de la session "fil rouge"' href="/VsxDay07/1-FilRouge.zip" target=_blank&gt;1-FilRouge.zip&lt;/A&gt; (998 ko)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;2. Personnalisation de VS&lt;/STRONG&gt; : 
&lt;UL&gt;
&lt;LI&gt;La démonstration d'Alain sur les Visual Studio Policy : &lt;A href="/VsxDay07/2-VSPolicy.zip" target=_blank&gt;2-VSPolicy.zip&lt;/A&gt; (2,14 Mo). &lt;BR&gt;
&lt;LI&gt;Par ailleurs, le DSL "&lt;STRONG&gt;DSL4VSI&lt;/STRONG&gt;"&amp;nbsp;qu'Alain a créé pour générer des Visual Studio Installer (VSI) capables d'installer des 'Code Snippet', 'VSTemplate', 'Macro Project', 'Addin', 'Toolbox Control' est disponible sur CodePlex en &lt;A title=http://www.codeplex.com/dsl4vsi href="http://www.codeplex.com/dsl4vsi"&gt;http://www.codeplex.com/dsl4vsi&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;3. API d'Automation et Add-ins&lt;/STRONG&gt;. 
&lt;UL&gt;
&lt;LI&gt;La solution qui a servi de support aux 4 démonstrations de Jean-Marc&amp;nbsp;sur la mise en oeuvre du ProjectModel (énumération des projets et des fichiers), du CoreModel (énumération des fenêtres) du CodeModel (création dynamique d'une solution contenant&amp;nbsp;un projet contenant une classe sérialisable)&amp;nbsp;: &lt;A href="/vsxDay07/3.1-AutomationAPI.zip" target=_blank&gt;3.1-AutomationAPI.zip&lt;/A&gt;&amp;nbsp;(559 ko)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;Les sources et binaires de l'Add-in de sébastien pour générer des images cliquables à partir des ClassDiagrams : &lt;A href="/vsxDay07/3.2-Add-ins.zip" target=_blank&gt;3.2-Add-ins.zip&lt;/A&gt;&amp;nbsp;(25,3 ko)&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;4. Le tour du VS SDK a fait l'objet d'une démo Live que vous pourrez retrouver lorsque les WebCasts seront disponibles.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Pour les démos suivantes, sauf la 6.1, vous devrez installer le &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=51a5c65b-c020-4e08-8ac0-3eb9c06996f4&amp;amp;displaylang=en" target=_blank&gt;VS SDK 4.0&lt;/A&gt; pour Visual Studio 2005&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;4.5.&lt;/STRONG&gt; En ce qui concerne la démonstration associée à la présentation de la&amp;nbsp;&lt;STRONG&gt;découverte des Packages&lt;/STRONG&gt;, l'archive &lt;A href="/vsxDay07/4.5-Packages.zip" target=_blank&gt;4.5-Packages.zip&lt;/A&gt; (7,81 Mo) comporte les &lt;STRONG&gt;8 étapes de construction du package ReferenceDocumentationGenerator&lt;/STRONG&gt; permettant d'exporter des images cliquables correspondant aux ClassDiagram et aux DSL, et de choisir les Options d'exportation ainsi que les diagrammes à exporter.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;5.2.&amp;nbsp;La démonstration de Sébastien sur la création d'un DSL&lt;/STRONG&gt; pour des formes géométriques comporte, elle, 7 étapes, de la création du Domain Model avec les DSL Tools au déploiement.&amp;nbsp;Ces étapes ont été regroupées dans &lt;A href="/vsxDay07/5.2-VSX-Day-solutions.zip" target=_blank&gt;5.2-VSX-Day-solutions.zip&lt;/A&gt;&amp;nbsp;(8 Mo)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;6.1.&lt;/STRONG&gt; La session des&lt;STRONG&gt; aspects avancés &lt;/STRONG&gt;de personnalisation de la &lt;STRONG&gt;fenêtre des propriétés&lt;/STRONG&gt; à l'aide des concepts de la namespace &lt;STRONG&gt;System.ComponentModel&lt;/STRONG&gt; a fait l'objet de démonstrations de la part d'Alain que vous pourrez retrouver dans &lt;A href="/vsxDay07/6.1-ComponentModel.zip" target=_blank&gt;6.1-ComponentModel.zip&lt;/A&gt;&amp;nbsp;(53 ko)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;6.2. La démonstration de la session &lt;STRONG&gt;Utilisation&amp;nbsp;du Domain Model&lt;/STRONG&gt; est dans cette archive : &lt;A href="/vsxDay07/6.2-UtilisationModele-ReferenceDocumentationGenerator.zip" target=_blank&gt;6.2-UtilisationModele-ReferenceDocumentationGenerator.zip&lt;/A&gt;&amp;nbsp;(755 ko). Elle est également comprise dans l'archive de la sesssion 4.5 sur les Packages dont elle constitue la 8ème étape.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;6.3. Le modificatif au DSL de Sébastien pour lui adjoindre des fonctions avancées comme la bidirectionnalité Model &amp;lt;-&amp;gt; Code est, pour mémoire, redonné dans &lt;A href="/vsxDay07/6.3-Bidirectionnalite.zip" target=_blank&gt;6.3- Bidirectionnalite.zip&lt;/A&gt;&amp;nbsp;(2,90 Mo)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;D'ici à quelques jours, les Webcasts seront disponibles pour compléter les présentations et les démos ... d'ici là, bonnes compilations.&lt;/P&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=183" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>VSX Day 07 - les pr&amp;#233;sentations PowerPoint</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/18/180.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/10/18/180.aspx</id><published>2007-10-18T20:57:00Z</published><updated>2007-10-18T20:57:00Z</updated><content type="html">&lt;P&gt;Vous étiez 139 à nous rejoindre à Paris, mardi dernier pour assister à l'événement que nous avions organisé pour vous présenter la carte&amp;nbsp;des technologies de personnalisation et d'extensibilité de Visual Studio. &lt;/P&gt;
&lt;P&gt;&lt;A HREF="/vsxday07/sommaire.jpg"&gt;&lt;IMG height=768 alt=sommaire src="/vsxday07/sommaire.jpg" width=1024 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Après une courte &lt;A HREF="/vsxday07/0.%20VSX%20Day%202007%20-%20Introduction.pptx" target=_blank&gt;introduction&lt;/A&gt;, nous avons présenté la problématique d'industrialisation de la documentation de référence - qui nous a servir de &lt;A title="Fil Rouge" HREF="/vsxday07/1.%20VSX%20Day%202007%20-%20Fil%20rouge.pptx" target=_blank&gt;fil rouge&lt;/A&gt; de cette journée - et des extensions de Visual Studio y répondant. 
&lt;P&gt;Les différentes&amp;nbsp;technologies d'extensibilité ont ensuite été présentées, des plus accessibles aux plus puissantes : 
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;La &lt;A HREF="/vsxday07/2.1%20VSX%20Day%202007%20-%20Personnalisation.pptx" target=_blank&gt;personnalisation simple de Visual Studio&lt;/A&gt;&lt;/STRONG&gt;, templates, wizards, et l'utilisation de &lt;A HREF="/vsxday07/2.2%20VSX%20Day%202007%20-%20GAX%20et%20GAT.pptx" target=_blank&gt;Guidances GAX&lt;/A&gt; nous donnera déjà des possibilités intéressantes 
&lt;LI&gt;Puis est venu le temps de commencer à &lt;STRONG&gt;coder avec &lt;A HREF="/vsxday07/3.%20VSX%20Day%202007%20-%20Automation%20API%20-%20AddIns.pptx" target=_blank&gt;l'automation&lt;/A&gt;&lt;/STRONG&gt; par les Macros, et Add-In 
&lt;LI&gt;Ensuite, le&amp;nbsp;&lt;STRONG&gt;&lt;A HREF="/vsxday07/4.1.%20VSX%20Day%202007%20-%20Tour%20du%20VSSDK.pptx" target=_blank&gt;Tour du « Visual Studio SDK&lt;/A&gt;&amp;nbsp;»&lt;/STRONG&gt; nous a permis de nous y retrouver rapidement dans toutes ces technologies méconnues, et sur ce qu'elles peuvent vous apporter&amp;nbsp; 
&lt;LI&gt;Un zoom particulier a ensuite été effectué sur quelques unes de ces technologies&amp;nbsp;: 
&lt;UL&gt;
&lt;LI&gt;Combien il est simple d'utiliser l'information capitalisée dans &lt;STRONG&gt;&lt;A HREF="/vsxday07/4.2.%20VSX%20Day%202007%20-%20Extensibilite%20VSTS.pptx" target=_blank&gt;Team System&lt;/A&gt;&lt;/STRONG&gt; 
&lt;LI&gt;Comment &lt;A HREF="/vsxday07/4.3.%20VSX%20Day%202007%20-%20Wix.pptx" target=_blank&gt;Wix&lt;/A&gt; va aider à réaliser des .msi à partir d'un formalisme XML 
&lt;LI&gt;Mettre en ouvre &lt;STRONG&gt;&lt;/STRONG&gt;&lt;A HREF="/vsxday07/4.4.%20VSX%20Day%202007%20-%20Addin%20SandCastle.pptx" target=_blank&gt;SandCastle et ses Add-in&lt;/A&gt; 
&lt;LI&gt;&lt;STRONG&gt;Créer des &lt;A HREF="/vsxday07/4.5.%20VSX%20Day%202007%20-%20Packages.pptx" target=_blank&gt;packages Visual Studio&lt;/A&gt;&lt;/STRONG&gt;, pourquoi, et comment ce n'est finalement pas si compliqué quand on a les bons outils 
&lt;LI&gt;Les &lt;STRONG&gt;&lt;A HREF="/vsxday07/2.2%20VSX%20Day%202007%20-%20GAX%20et%20GAT.pptx" target=_blank&gt;Guidances (GAT)&lt;/A&gt;&lt;/STRONG&gt; que vous pouvez mettre à disposition des développeurs&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;L'après-midi&amp;nbsp;a été&amp;nbsp;entièrement consacrée aux &lt;STRONG&gt;&lt;EM&gt;Domain Specific Languages&lt;/EM&gt; (&lt;EM&gt;DSL&lt;/EM&gt;)&lt;/STRONG&gt; et leur mise en ouvre dans Visual Studio via les DSL Tools. Débutants, comme les utilisateurs confirmés ont, nous l'espérons, pu y trouver réponses à leurs questions 
&lt;UL&gt;
&lt;LI&gt;&lt;A HREF="/vsxday07/5.2.%20VSX%20Day%20-%20DSL%20Tools.pptx" target=_blank&gt;A quoi les DSL peuvent vous servir ?&lt;/A&gt; Qu'en attendre&amp;nbsp;? 
&lt;LI&gt;Comment en créer&amp;nbsp;? 
&lt;LI&gt;Exemples de réalisations (&lt;A HREF="/vsxday07/5.5.%20VSX%20Day%202007%20-%20Realisations%20-%20Candle.pptx" target=_blank&gt;Candle&lt;/A&gt;, &lt;A HREF="/vsxday07/5.6.%20VSX%20Day%202007%20-%20Realisations%20-%20WCF%20Designer.pptx" target=_blank&gt;WCF Designer&lt;/A&gt;, Aspectize, &lt;A HREF="/vsxday07/5.4.%20VSX%20Day%202007%20-%20Realisations%20-%20DGA.ppt" target=_blank&gt;DGA&lt;/A&gt;) 
&lt;LI&gt;Comment mettre en ouvre des aspects avancés comme la &lt;A HREF="/vsxday07/6.3.%20VSX%20Day%202007%20-%20Architecture%20du%20DSL%20bidirectionnel.pptx" target=_blank&gt;bidirectionnalité&lt;/A&gt;, ou &lt;A HREF="/vsxday07/6.2.%20VSX%20Day%202007%20-%20Utilisation%20du%20modele%20.pptx" target=_blank&gt;l'accès au modèle&lt;/A&gt; de nos DSL&amp;nbsp;!&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Nous avons terminé la journée en levant le voile sur &lt;A HREF="/vsxday07/7.%20VSX%20Day%202007%20-%20VS%202008.pptx" target=_blank&gt;l'extensibilité VS 2008&lt;/A&gt;, et en donnant des &lt;A HREF="/vsxday07/8.%20VSX%20Day%202007%20-%20Conclusion.pptx" target=_blank&gt;liens utiles&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Si vous êtes intéressés par un sujet en particulier, vous pouvez télécharger le &lt;A HREF="/vsxday07/0.%20Sommaire.pps" target=_blank&gt;sommaire&lt;/A&gt; au format .pps, et cliquer sur les stations de métro. Vous serez amené directement aux transparent correspondant.&lt;/P&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?eventid=1032351826"&gt;&lt;IMG src="/photos/jean-marc/images/173/original.aspx" align=right&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=180" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Revue de presse : le livre sur les DSL Tools</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/08/07/162.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/08/07/162.aspx</id><published>2007-08-08T05:44:58Z</published><updated>2007-08-08T05:44:58Z</updated><content type="html">&lt;p&gt;&lt;img src="http://g-ec2.images-amazon.com/images/I/51PowJFAeAL._SS500_.jpg" align="right"&gt;Avec Sébastien, nous nous sommes aperçus (non sans une certaine honte), que nous n'avions pas encore écrit à propos du &lt;a href="http://www.amazon.fr/Domain-Specific-Development-Visual-Studio-Tools/dp/0321398203/ref=sr_1_1/403-2010181-7166069?ie=UTF8&amp;amp;s=english-books&amp;amp;qid=1186552947&amp;amp;sr=8-1" target="_blank"&gt;livre&lt;/a&gt; de Steve Cook, Gareth Jones, Stuart Ken et Alan Wills sur les DSL Tools; heureusement, &lt;a href="http://www.dotnetguru.org/modules.php?op=modload&amp;amp;name=News&amp;amp;file=article&amp;amp;sid=941&amp;amp;mode=thread&amp;amp;order=0&amp;amp;thold=0" target="_blank"&gt;Sami&lt;/a&gt; l'avait annoncé à sa sortie.&lt;/p&gt; &lt;p&gt;Il faut vous dire que, pour ma part, c'est déjà une vielle histoire puisque j'ai eu l'honneur d'en être un des relecteurs techniques pendant les vacances de Noël 2006&amp;nbsp;;&amp;nbsp;alors je comptais bloguer dessus en vous donnant plus d'information que simplement dire "il est sorti", mais je me suis laissé prendre par le temps, et on arrive en août. Mais nous nous sommes dit qu'il n'était pas trop tard, alors voici ce que j'aurai dû écrire il y a quelques mois.&lt;/p&gt; &lt;h3&gt;Ce que j'en pense&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Je l'ai adoré dès la première lecture&lt;/strong&gt;. C'est vraiment le livre que nous attendions, répondant à la fois au besoin d'une documentation conceptuelle sur l'utilisation des DSL Tools, et présentant comment s'y prendre pour créer un DSL de A à Z. Tout le monde l'appréciera, j'en suis certain, aussi bien :&lt;/p&gt; &lt;ul&gt; &lt;li&gt;les directeurs techniques, chefs de projets, architectes et développeurs, qui &lt;strong&gt;veulent savoir&lt;/strong&gt; &lt;strong&gt;si, et comment&lt;/strong&gt;, les DSL peuvent &lt;strong&gt;augmenter leur productivité&lt;/strong&gt;. Je leur recommande notamment les deux premier chapitres, plein de conseils sages issus de l'expérience des auteurs (il faut peut-être le rappeler, Steve Cook a été l'un des concepteurs de l'UML, le concepteur de l'OCL, et architecte de Rational XDE !). Les comparaisons, et pas forcément les oppositions,&amp;nbsp;UML / DSL améliorent notre compréhension du débat. Le dernier chapitre (11 : concevoir un DSL) est également plus méthodologique. Avec ce livre, la vision "&lt;a href="http://www.softwarefactories.com/" target="_blank"&gt;Software Factories&lt;/a&gt;" gagne en concret.&lt;br&gt; &lt;li&gt;&lt;strong&gt;les débutants dans le domaine&lt;/strong&gt;, qui découvrirons les DSL Tools, pas à pas, notamment à partir de deux exemples fil-rouge de la vraie-vie, bien choisis, qui nous conduisent au fur et à mesure des chapitres à étudier tous les aspects des DSL Tools, des plus simples aux plus complexes. Pour certaines techniques qui ne sont pas illustrées dans ces deux exemples, des références sont également faites aux Samples de personalisation livrés dans le SDK, ainsi que quelques exemples téléchargeables sur le site du livre (&lt;a title="http://www.domainspecificdevelopment.com/" href="http://www.domainspecificdevelopment.com/"&gt;http://www.domainspecificdevelopment.com/&lt;/a&gt;). J'ai, par exemple, retenu un DSL de conception de circuits électroniques qui permet d'expliquer plein&amp;nbsp;d'aspects uniques. En un mot, les débutants pourront démarrer très vite et aller très loin, gràce à ce livre.&lt;br&gt; &lt;li&gt;&lt;strong&gt;les&amp;nbsp;utilisateurs actuels ou futurs des DSL Tools&lt;/strong&gt;,&amp;nbsp;qui apprendront énormément aussi bien sur l'utilisation des DSL Tools (je pense notamment aux connector builders, aux name providers mais tous les chapitres ont leur lot de trésors), que sur le Code Custom à ajouter pour la personnalisation des DSL. Les deux derniers chapitres (10 : "aspects avancés des DSL", et 11 : "Concevoir un DSL") vous apprendront beaucoup. en un mot, vous aurez, de toute façon une meilleure vision tant globale que détaillée&lt;br&gt; &lt;li&gt;&amp;nbsp;les académiques, intéressés par la modélisation en général (pas forcément les DSL). Même si vous êtes plutôt MDA/UML, le premier chapitre vous plaira, ainsi que le dernier. Les professeurs et élèves en théorie des modèles et théorie des langages doivent, à mon avis, avoir ce livre dans leur bibliothèque.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;D'autres points forts&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Le livre est émaillé de trucs et astuces et de conseils méthodologiques, en encart.&lt;br&gt;&lt;/li&gt; &lt;li&gt;Encore un trait que j'ai beaucoup aimé dans le livre, et que je ne retrouve, malheureusement pas souvent dans les livres techniques : les auteurs ne se contentent pas de présenter le produit et son utilisation, mais aussi le "pourquoi" des décisions que l'équipe des DSL Tools ont prises lors de la conception du produit, ainsi que plein des bonnes pratiques.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Où&amp;nbsp;vous le procurer ?&lt;/h3&gt; &lt;p&gt;Vous l'avez compris, vous devez absolument vous procurer ce livre. Il est disponible sous deux formes :&lt;/p&gt; &lt;ul&gt; &lt;li&gt;papier : dans toutes les bonnes librairies, en ligne ou non.  &lt;li&gt;électronique : à&amp;nbsp;lire sur votre ordinateur&amp;nbsp;si vous êtes abonné à&amp;nbsp;&lt;a href="http://safari.oreilly.com/9780321398208" target="_blank"&gt;Safari Online&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.dslfactory.org/aggbug.aspx?PostID=162" width="1" height="1"&gt;</content><author><name>Jean-Marc</name><uri>http://www.dslfactory.org/members/Jean-Marc.aspx</uri></author></entry><entry><title>Journ&amp;#233;e &amp;quot;Extensibilit&amp;#233; Visual Studio&amp;quot; organis&amp;#233;e par DslFactory le 16 octobre</title><link rel="alternate" type="text/html" href="http://www.dslfactory.org/blogs/jean-marc/archive/2007/08/06/159.aspx" /><id>http://www.dslfactory.org/blogs/jean-marc/archive/2007/08/06/159.aspx</id><published>2007-08-07T05:00:00Z</published><updated>2007-08-07T05:00:00Z</updated><content type="html">&lt;P&gt;Une date à retenir et à&amp;nbsp;inscrire dans vos calendrier : le 16 octobre !&lt;/P&gt;
&lt;P&gt;Nous serons à Paris, rue de l'Université, pour présenter pendant toute une journée tout ce que vous avez voulu savoir sur l'extensibilité Visual Studio (VSX). &lt;/P&gt;
&lt;P&gt;Evidemment,&amp;nbsp;la fin de journée sera un&amp;nbsp;feu d'artifice que présentations de travaux sur les DSL Tools (qu'est-ce que c'est ? exemples de réalisations, comment çà marche, et même certains aspects avancés, comme les DSL bidirectionnels).&lt;/P&gt;
&lt;P&gt;Mais&amp;nbsp;la journée commencera&amp;nbsp;par des sessions pour "débutants en l'extensibilité". Nous apprendrons comment personaliser Visual Studio, l'automatiser, utiliser le CodeModel. Nous ferons une progression pédagogique pour permettre à tous d'être en mesure de suivre les sessions de fin de journée. Et au passage, nous apprendrons plus en&amp;nbsp;détails ce qu'est le VS SDK, ce qu'il peut-il nous apporter ? Ce qu'on peut en faire, quelles surcouches existent (je pense à GAT, mais pas seulement ... vous verrez). &lt;/P&gt;
&lt;P&gt;Et il ne faut pas oublier la génération d'ue documentation de référence pertinente et riche avec SandCastle (et oui ! il fait partie du VS SDK !). L'intégration continue de la documentation sera notre fil-rouge de la journée, prétexte à la découverte de toutes les technologies&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt