Comment : définir et installer une extension de modélisation
Dans Visual Studio Ultimate, vous pouvez définir différentes extensions pour les diagrammes de modélisation. Vous pouvez ainsi adapter les diagrammes et les modèles à vos besoins. Par exemple, vous pouvez définir des commandes de menu, des profils UML, des contraintes de validation et des éléments de boîte à outils. Vous pouvez définir plusieurs composants dans une seule extension. Vous pouvez également distribuer ces extensions à d'autres utilisateurs de Visual Studio Ultimate sous la forme d'une extension d'intégration Visual Studio (VSIX). Vous pouvez créer une extension VSIX à l'aide d'un projet VSIX dans Visual Studio.
Vous devez avoir installé le Kit de développement logiciel (SDK) Visual Studio.
Configuration requise
Visual Studio 2010 Visualization and Modeling SDK. Pour plus d'informations, consultez Visual Studio Visualization and Modeling SDK sur la Galerie de code MSDN.
Création d'une solution d'extension de modélisation
Pour définir une extension de modélisation, vous devez créer une solution qui contient les projets suivants :
un projet d'extension d'intégration Visual Studio (VSIX). Cela génère un fichier qui joue le rôle de programme d'installation pour les composants de votre extension. Dans la boîte de dialogue Nouveau projet, développez Visual C# ou Visual Basic, puis cliquez sur Extensibilité. Dans la colonne centrale, cliquez sur Projet VSIX .
un projet de bibliothèque de classes, obligatoire pour les composants qui incluent le code de programme.
Pour créer une extension à plusieurs composants, vous pouvez les développer dans une solution unique. Pour ce faire, vous avez besoin d'un projet VSIX, puis il vous suffit d'ajouter ces composants à la définition VSIX.
Les composants qui ne requièrent pas de code, tels que les éléments de boîte à outils personnalisés et les profils UML personnalisés, peuvent être directement ajoutés au projet VSIX sans utiliser de projets séparés. Les composants, tels que les commandes de menu, qui requièrent du code de programme se définissent plus facilement dans un projet séparé.
Pour configurer un projet VSIX
Lorsque vous créez un composant avec du code, il est plus facile de commencer par créer le projet de bibliothèque de classes. Vous ajouterez votre code à ce projet.
créer un projet VSIX ;
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la solution, pointez sur Ajouter, puis cliquez sur Nouveau projet.
Sous Modèles installés, développez Visual C# ou Visual Basic, puis cliquez sur Extensibilité. Dans la colonne centrale, cliquez sur Projet VSIX .
Définissez le projet VSIX comme projet de démarrage de la solution.
- Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet VSIX, puis cliquez sur Définir comme projet de démarrage.
Ouvrez source.extension.vsixmanifest. Le fichier s'ouvre dans l'éditeur de manifeste.
Définissez le nom et les champs descriptifs du projet VSIX.
Cliquez sur Sélectionner des éditions, puis sélectionnez les éditions de Visual Studio sur lesquelles vous voulez que votre extension s'exécute.
Ajoutez vos composants à la liste Contenu.
Cliquez sur Ajouter du contenu.
Pour un composant avec du code :
Dans Sélectionner un type de contenu, sélectionnez Composant MEF.
Dans Sélectionner une source, cliquez sur Projet, puis sélectionnez le nom de votre projet de bibliothèque de classes.
Pour d'autres types de composants, consultez les liens dans la section suivante.
Développement du composant
Pour chaque composant, tel qu'une commande de menu ou un gestionnaire de mouvements, vous devez définir un gestionnaire séparé. Le tableau suivant répertorie les différents genres de gestionnaires.
Type d'extension |
Rubrique |
Manière dont chaque composant est déclaré en général |
---|---|---|
Commande de menu |
Comment : définir une commande de menu sur un diagramme de modélisation |
[ClassDesignerExtension] // or other diagram types [Export(typeof(ICommandExtension))] public class MyCommand : ICommandExtension {... |
Glisser-déplacer ou double-clic |
Comment : définir un gestionnaire déposer et double-cliquer sur un diagramme de modélisation |
[ClassDesignerExtension] // or other diagram types [Export(typeof(IGestureExtension))] public class MyGesture : IGestureExtension {... |
Contrainte de validation |
Comment : définir des contraintes de validation pour les modèles UML |
[Export(typeof( System.Action<ValidationContext, object>))] [ValidationMethod(ValidationCategories.Save | ValidationCategories.Menu)] public void ValidateSomething (ValidationContext context, IClassifier elementToValidate) {...} |
Gestionnaire d'événements des liens d'éléments de travail |
Comment : définir un gestionnaire de liens d'éléments de travail |
[Export(typeof(ILinkedWorkItemExtension))] public class MyWorkItemEventHandler : ILinkedWorkItemExtension {... |
Profil UML |
Non défini avec le code de programme. À la place, définissez le type de composant dans source.extension.vsixmanifest comme suit. Type de composant = Extension personnalisée Type = Microsoft.VisualStudio.UmlProfile |
|
Élément de boîte à outils |
Comment : définir un élément de boîte à outils de modélisation personnalisé |
Non défini avec le code de programme. À la place, définissez le type de composant dans source.extension.vsixmanifest comme suit. Type de composant = Extension personnalisée Type = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems |
Exécution d'une extension pendant son développement
Pour exécuter une extension pendant son développement
Dans le menu Débogage de Visual Studio, cliquez sur Démarrer le débogage.
Le projet est généré et une nouvelle instance de Visual Studio démarre en mode expérimental.
- Vous pouvez également cliquer sur Exécuter sans débogage. Cela réduit le temps nécessaire au démarrage du programme.
Créez ou ouvrez un projet de modélisation dans l'instance expérimentale de Visual Studio, et créez ou ouvrez un diagramme.
Votre extension se chargera et s'exécutera.
Si vous avez utilisé Exécuter sans débogage alors que vous souhaitez utiliser le débogueur, revenez à l'instance principale de Visual Studio. Dans le menu Déboguer, cliquez sur Attacher au processus. Dans la boîte de dialogue, sélectionnez l'instance expérimentale de Visual Studio, qui porte le nom de programme devenv.
Pour exécuter l'extension dans l'instance principale de Visual Studio, suivez les étapes d'Installation et désinstallation d'une extension.
Installation et désinstallation d'une extension
Vous pouvez installer une extension Visual Studio sur votre propre ordinateur et sur d'autres.
Pour installer une extension
Dans votre ordinateur, recherchez le fichier .vsix qui a été généré par votre projet d'extension.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur votre projet et cliquez sur Ouvrir le dossier dans l'Explorateur Windows.
Localisez le fichier bin\*\VotreProjet.vsix.
Copiez le fichier .vsix sur l'ordinateur cible sur lequel vous souhaitez installer l'extension. Il peut s'agir de votre propre ordinateur ou d'un autre.
- L'ordinateur cible doit disposer de l'une des éditions de Visual Studio que vous avez spécifiées dans source.extension.vsixmanifest.
Sur l'ordinateur cible, double-cliquez sur le fichier .vsix.
Le Programme d'installation des extensions Visual Studio ouvre et installe l'extension.
Démarrez ou redémarrez Visual Studio.
Pour désinstaller une extension
Dans le menu Outils, cliquez sur Gestionnaire d'extensions.
Développez Extensions installées.
Sélectionnez l'extension, puis cliquez sur Désinstaller.
Exceptionnellement, une extension défaillante ne parvient pas à se charger et crée un rapport dans la fenêtre d'erreur, mais ne s'affiche pas dans le gestionnaire d'extensions. Dans ce cas, vous pouvez supprimer l'extension en supprimant le fichier de l'emplacement suivant, où %LocalAppData% est généralement au format NomLecteur:\Users\NomUtilisateur\AppData\Local:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions
Voir aussi
Concepts
Comment : définir un profil pour étendre UML
Autres ressources
Comment : définir un élément de boîte à outils de modélisation personnalisé
Comment : définir des contraintes de validation pour les modèles UML
Comment : définir une commande de menu sur un diagramme de modélisation