http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Important
Vous devez installer un pack Visual Studio 2010 Feature Pack pour utiliser cette fonctionnalit. Si vous avez remplac Visual Studio 2010 Visualization and Modeling Feature Pack par Visual Studio 2010 Feature Pack 2, vous devez remapper tous les modles personnaliss pour les projets de gnration de code l'emplacement suivant : \Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft \<InsrerNomFeaturePackVisualStudio>\<InsrerNumroVersionFeaturePackVisualStudio> Pour plus d'informations, consultez Personnalisation de la commande Generate Code. La commande Generate Code est particulirement adapte la gnration de code partir de la slection d'lments de l'utilisateur, et la gnration d'un fichier pour chaque classe UML ou autre lment. Par exemple, la capture d'cran prsente deux fichiers C# gnrs partir de deux classes UML. Si, en revanche, vous voulez gnrer du code dans lequel les fichiers gnrs n'ont pas de relation 1:1 avec les lments UML, vous pouvez envisager d'crire des modles de texte appels avec la commande Transformer tous les modles. Pour plus d'informations sur cette mthode, consultez Comment : gnrer des fichiers partir d'un modle UML.
1 sur 8
22/10/2011 11:07
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Pour plus d'informations sur les diagrammes de classes UML dans Visual Studio Ultimate, consultez les rubriques suivantes : Diagrammes de classes UML : rfrence Diagrammes de classes UML : indications
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Un type C# est produit pour chaque type que vous avez slectionn dans le modle UML. Chaque type est plac dans un fichier de code spar dans le dossier GeneratedCode. Si le type UML est contenu dans un package, le type C# gnr est plac l'intrieur d'un espace de noms et le fichier est gnr dans un dossier portant le mme nom que l'espace de noms. Une proprit C# est gnre pour chaque Attribute d'une classe UML. Une mthode C# est gnre pour chaque Operation d'un type UML. Un champ C# est gnr pour chaque association navigable laquelle la classe participe. En ajoutant un strotype chaque type UML, vous pouvez contrler un plus grand nombre de proprits du type C# gnr.
Appliquer ce strotype
<aucune> ou C# class
Interface
Interface
<aucune> ou C# interface
numration
numration
<aucune> ou C# enum
Dlgu Struct
Classe Classe
C# delegate C# struct
Conseil
Si les strotypes C# ne s'affichent pas, activez le profil C# pour le modle ou pour un package qui contient les lments de modle auxquels vous vous intressez. Slectionnez le package ou la racine du modle dans l'Explorateur de modles UML. Ensuite, dans la fentre Proprits, cliquez sur Profil, puis activez le profil C#. 3. Dveloppez la proprit Strotypes pour voir les proprits supplmentaires que vous pouvez dfinir. Les proprits Description de types, d'attributs, d'oprations et d'associations sont crites dans les commentaires <summary> dans le code gnr. Les lments de commentaire lis aux types sont crits dans les commentaires <remarks>.
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Le code gnr varie en fonction des proprits de chaque type, attribut ou opration. Par exemple, si vous affectez la proprit Is Abstract d'une classe la valeur true, le mot cl abstract s'affichera sur la classe gnre. Si vous affectez la proprit Multiplicit d'un attribut la valeur 0..*, le type de la proprit gnre sera IEnumerable<>. De plus, chaque strotype fournit plusieurs proprits supplmentaires que vous pouvez dfinir. Ces valeurs sont traduites en mots cls appropris dans le code C#. Par exemple, si vous dfinissez la proprit Is Static sur une classe, la classe C# sera static. Pour dfinir ces proprits supplmentaires, slectionnez la classe ou un autre lment dans le diagramme. Dans la fentre Proprits, dveloppez Strotypes, puis dveloppez le strotype C#, tel que Classe C#. Pour les classes, ces proprits supplmentaires incluent : CLR Attributes Is Partial Is Static Is Unsafe Package Visibility Chaque attribut et opration dispose galement de proprits de strotype que vous pouvez dfinir. Si vous ne voyez pas les proprits sur un nouvel attribut, excutez la commande Generate Code.
Remarque
Les liaisons jointes la racine du modle agissent comme des valeurs par dfaut pour tous les lments du modle. Pour afficher ces liaisons par dfaut, cliquez avec le bouton droit sur 4 sur 8 22/10/2011 11:07
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
les lments du modle. Pour afficher ces liaisons par dfaut, cliquez avec le bouton droit sur la surface de diagramme, puis cliquez sur Configure Default Code Generation Settings (Configurer les paramtres de gnration de code par dfaut). Vous pouvez galement slectionner la racine du modle dans l'Explorateur de modles UML, puis cliquer sur [...] dans la proprit Text Template Bindings. Les liaisons ne s'affichent pas tant que vous n'avez pas utilis la commande Generate Code au moins une fois. Les liaisons de modles ne peuvent pas tre jointes un diagramme.
Pour joindre des liaisons de modles de texte un package ou un autre lment de modle
1. Dans l'Explorateur de modles UML, cliquez avec le bouton droit sur un lment de modle, puis cliquez sur Proprits. En gnral, vous joignez des liaisons de modles de texte un package ou la racine du modle. 2. Dans la fentre Proprits, cliquez sur le bouton de slection ([...]) dans la proprit Text Template Bindings. La bote de dialogue Liaisons de modles de texte s'affiche. 3. Cliquez sur Ajouter pour crer une liaison de modle de texte. - ou Cliquez sur une liaison existante pour la modifier. Chaque liaison de modle dfinit la manire dont un modle spcifi doit tre appliqu l'lment de modle que vous avez slectionn, et aux autres lments de modle qu'il contient. 4. Dans la bote de dialogue, dfinissez les proprits de la liaison de modle de texte.
Proprit
Nom
Description
Nom pour cette liaison. Pour substituer une liaison hrite d'un modle ou d'un package contenant, utilisez le mme nom que la liaison substituer. Si la valeur est true, tout code existant est remplac. Nom du fichier gnr. Vous pouvez insrer des expressions dans cette chane, telles que {Nom} ou {Nom.Propritaire}. Par exemple, vous pouvez crire : {Nom.Propritaire}_{Nom}. L'expression est value sur l'lment de modle. Elle peut utiliser des proprits d'lments, mais pas de mthodes. Pour trouver les proprits pouvant tre utilises, recherchez les proprits de types dans Microsoft.VisualStudio.Uml.*. Important L'expression {Nom} ou {Nom.Propritaire} ne peut tre utilise que dans la proprit Target Name.Pour modifier le nom de la classe gnre, vous devez modifier le modle.Pour plus d'informations, consultez criture d'un modle de texte.
Spcifie le chemin d'accs au projet Visual Studio qui contiendra les fichiers de sortie de la transformation. Utilisez des valeurs types pour crer un projet. Cliquez sur le bouton de slection ([...]) pour slectionner un projet existant.
5 sur 8
22/10/2011 11:07
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Un projet est cr s'il n'existe pas. Il s'agit d'un projet de bibliothque de classes C#. Pour ce faire, vous devez taper le projet directement. Vous pouvez inclure des macros de variables d'environnement telles que %ProgramFiles% ou %LocalAppData%. Rpertoire cible Dossier dans lequel le fichier cible est gnr. Le chemin d'accs est relatif au dossier du projet. Vous pouvez utiliser l'expression {PackageStructure} pour insrer un chemin d'accs qui correspond aux noms des packages contenants. La valeur par dfaut est \GeneratedCode\{PackageStructure}. Vous pouvez galement inclure des variables d'environnement telles que %TEMP% ou %HomePath%. Important {PackageStructure} peut tre utilis uniquement dans la proprit Target Directory.
Modle qui excutera la transformation. Vous pouvez utiliser les modles fournis ou crer le vtre. Les modles fournis se trouvent dans les emplacements suivants : Visual Studio 2010 Visualization and Modeling Feature Pack : %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft \<InsrerNomFeaturePackVisualStudio>\1.0\Templates\Text\ Conseil %LocalAppData% est en gnral NomLecteur:\Users\NomUtilisateur \AppData\Local.Sous Windows XP et Windows 2003, utilisez %AppData% au lieu de %LocalAppData%. Visual Studio 2010 Feature Pack 2 : \Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling \<InsrerNomFeaturePackVisualStudio> \<InsrerNumroVersionFeaturePackVisualStudio>
Conseil
%LocalAppData% est en gnral NomLecteur:\Users\NomUtilisateur\AppData\Local. Sous Windows XP et Windows 2003, utilisez %AppData% au lieu de %LocalAppData%. 6 sur 8 22/10/2011 11:07
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
Sous Windows XP et Windows 2003, utilisez %AppData% au lieu de %LocalAppData%. Visual Studio 2010 Feature Pack 2 : \Microsoft Visual Studio 10.0\Common7 \IDE\Extensions\Microsoft\Modeling\<InsrerNomFeaturePackVisualStudio> \<InsrerNumroVersionFeaturePackVisualStudio> Pour comprendre les modles de texte, reportez-vous aux rubriques suivantes. Un modle de texte est un prototype du fichier rsultant et contient la fois le texte rsultant et le code de programme qui lit le modle. Pour plus d'informations, consultez Gnration de code et modles de texte T4. Pour naviguer dans le modle UML dans le code de programme, vous devez utiliser l'API UML. Pour plus d'informations, consultez Comment : naviguer dans le modle UML et Rfrence des API pour l'extensibilit de la modlisation UML. Pour utiliser les modles avec la commande Generate Code, vous devez inclure la directive de modlisation. Par exemple : <#@ Modeling ElementType="Microsoft.VisualStudio.Uml.Classes.IClass" Processor="ModelingProcessor" #> L'attribut ElementType dfinit le type d'lment UML auquel ce modle s'applique. Dans le modle, this appartient une classe temporaire qui a les proprits suivantes : Element = IElement UML auquel le modle est appliqu. Errors: CompilerErrorCollection Host: ITextTemplatingEngineHost ModelBus: ModelBus. Pour plus d'informations, consultez Comment : intgrer des modles UML d'autres modles et outils. ProfileName = "C#Profile" ServiceProvider: IServiceProvider Session: TextTemplatingSession. Store: Store. Il s'agit du Magasin du kit de dveloppement logiciel Visualization and Modeling SDK sur lequel ModelStore UML est implment. Pour obtenir le IModelStore UML, utilisez this.Element.GetModelStore(). Les points suivants peuvent vous tre utiles lorsque vous crivez un modle de texte. Ces informations sont dcrites en dtail dans Gnration de code et modles de texte T4. Pour dboguer un modle de texte, insrez ce qui suit dans un segment d'instruction : System.Diagnostics.Debugger.Launch() ; Vous pouvez dfinir l'extension de nom de fichier du rsultat dans la directive Output. Une directive Output est obligatoire dans chaque modle de texte. Certains assemblys sont rfrencs automatiquement par le modle. Ces assemblys incluent par exemple System.dll et Microsoft.VisualStudio.Uml.Interfaces.dll. Pour utiliser d'autres assemblys dans votre code de programme de gnration, vous devez utiliser une directive Assembly. Par exemple : <#@ Assembly Name="%ProgramFiles%\Microsoft Visual Studio 10.0\Common7 \IDE\PublicAssemblies\Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll" #> Certains espaces de noms tels que System sont imports automatiquement dans votre code de programme. Pour d'autres espaces de noms, vous pouvez utiliser la directive Import de la mme manire que vous utiliseriez une instruction using. Par exemple : <#@ Import Namespace="Microsoft.VisualStudio.Uml.Classes" #>
7 sur 8
22/10/2011 11:07
http://msdn.microsoft.com/fr-fr/library/ff657795.aspx
<#@ Import Namespace="Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml" #> Utilisez la directive Include pour rfrencer le texte d'un autre fichier. Les parties du modle places entre crochets <# ... #> sont excutes par la commande Generate Code. Les parties du modle l'extrieur de ces crochets sont copies vers le fichier de rsultats. Il est important de distinguer le code de gnration et le texte gnr. Le texte peut tre gnr dans n'importe quel langage. <#= Expressions #> sont values et converties en chanes.
Voir aussi
Concepts Diagrammes de classes UML : rfrence Diagrammes de classes UML : indications Autres ressources Comment : gnrer des fichiers partir d'un modle UML
8 sur 8
22/10/2011 11:07