Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Visual Studio Modeling and Visualisation SDK (VMSDK) fournit plusieurs niveaux auxquels vous pouvez définir des outils de modélisation :
Définissez un langage spécifique au domaine (DSL) à l’aide du diagramme de définition DSL. Vous pouvez rapidement créer une DSL avec une notation diagrammematique, un formulaire XML lisible et les outils de base requis pour générer du code et d’autres artefacts. Pour plus d’informations, consultez Comment définir une langue Domain-Specific.
Affinez le DSL en utilisant des fonctionnalités plus avancées de la "DSL Definition". Par exemple, vous pouvez afficher des liens supplémentaires lorsque l’utilisateur crée un élément. Ces techniques sont principalement obtenues dans la définition DSL, et certaines nécessitent quelques lignes de code de programme.
Étendez vos outils de modélisation à l’aide du code du programme. VMSDK est conçu spécifiquement pour faciliter l’intégration de vos extensions au code généré à partir de la définition DSL. Pour plus d’informations, consultez Écriture de code pour personnaliser une langue Domain-Specific.
Note
Lorsque vous avez mis à jour le fichier définitions DSL, n’oubliez pas de cliquer sur Transformer tous les modèles dans la barre d’outils de l’Explorateur de solutions avant de reconstruire votre solution.
Informations de référence sur l’article
| Pour atteindre cet effet | Reportez-vous à cette rubrique |
|---|---|
| Autoriser l’utilisateur à définir les propriétés de couleur et de style d’une forme. | Cliquez avec le bouton droit sur la forme ou la classe de connecteur, pointez sur Ajouter exposé, puis cliquez sur un élément. |
| Différentes classes d'éléments de modèle apparaissent de manière similaire sur le diagramme et partagent des propriétés telles que la hauteur et la largeur initiales, la couleur, les info-bulles. | Utilisez l’héritage entre les formes ou les classes de connecteur. Les mappages entre les formes dérivées et les classes de domaine dérivées héritent des détails de mappage des parents. Ou associez différentes classes de domaine à la même classe de modèle. |
| Une classe d’élément de modèle est affichée par différents contextes de formes. | Mappez plusieurs classes de forme à la même classe de domaine. Lorsque vous générez la solution, suivez le rapport d’erreurs et fournissez le code demandé pour décider de la forme à utiliser. |
| La couleur de forme ou d’autres fonctionnalités telles que la police indiquent l’état actuel. | Consultez La mise à jour des formes et des connecteurs pour refléter le modèle. Créez une règle qui met à jour les propriétés exposées. Consultez les règles propagent les modifications dans le modèle. Vous pouvez également utiliser OnAssociatedPropertyChanged() pour mettre à jour les fonctionnalités non exposées telles que les flèches de lien ou la police. |
| Icône sur les modifications de forme pour indiquer l’état. | Définissez la visibilité du mappage du décorateur dans la fenêtre Détails de DSL. Localisez plusieurs décorateurs d’images sur la même position. Consultez La mise à jour des formes et des connecteurs pour refléter le modèle. Ou, remplacer ImageField.GetDisplayImage(). Voir l’exemple dans ImageField. |
| Définir une image d’arrière-plan sur n’importe quelle forme | Remplacez InitializeInstanceResources() pour ajouter un Champ ImageField ancré. |
| Imbriquer des formes à n’importe quelle profondeur | Configurez une arborescence d’incorporation récursive. Définissez BoundsRules pour contenir les formes. |
| Attachez des connecteurs à des points fixes sur la limite d’un élément. | Définissez les éléments de terminal incorporés, représentés par de petits ports sur le diagramme. Utilisez BoundsRules pour fixer les ports en position. Consultez l’exemple De diagramme de circuit dans le Kit de développement logiciel (SDK) visualisation et modélisation. |
| Le champ texte affiche une valeur dérivée d’autres valeurs. | Mappez le décorateur de texte à une propriété de domaine de stockage calculé ou personnalisé. Pour plus d’informations, consultez Propriétés de stockage calculées et personnalisées. |
| Propager les modifications entre les éléments de modèle ou entre les formes | Consultez Validation dans un langage Domain-Specific. |
| Propagez les modifications apportées aux ressources telles que d’autres extensions Visual Studio en dehors du magasin. | Consultez Les gestionnaires d’événements propagent les modifications en dehors du modèle. |
| La fenêtre propriété affiche les propriétés d’un élément associé. | Configurez le transfert de propriété. Consultez Personnalisation de la fenêtre Propriétés. |
| Catégories de propriétés | La fenêtre des propriétés est divisée en sections appelées catégories. Définissez la catégorie de vos propriétés de domaine. Les propriétés portant le même nom de catégorie s’affichent dans la même section. Vous pouvez également définir la catégorie d’un rôle de relation. |
| Contrôler l’accès utilisateur aux propriétés de domaine | Définissez Is Browsable sur false pour empêcher l'affichage d'une propriété de domaine dans la fenêtre Propriétés au moment de l'exécution. Vous pouvez toujours le mapper aux décorateurs de texte. L’interface utilisateur en lecture seule empêche les utilisateurs de modifier une propriété de domaine. L’accès au programme à la propriété de domaine n’est pas affecté. |
| Modifiez le nom, l’icône et la visibilité des nœuds dans l’Explorateur de modèles de votre DSL. | Consultez Personnalisation de l’Explorateur de modèles. |
| Activer la copie, couper et coller | Définissez la propriété Activer le copier-coller du nœud de l'Éditeur dans l'Explorateur DSL. |
| Copiez les liens de référence et leurs cibles chaque fois qu’un élément est copié. Par exemple, copiez les commentaires attachés à un élément. | Définissez la propriété Propagates Copy du rôle source (représentée par la ligne à un côté de la relation de domaine dans le diagramme de définition DSL). Écrivez du code pour remplacer ProcessOnCopy pour obtenir des effets plus complexes. Voir Personnalisation du comportement de copie. |
| Supprimez, réparez ou relinkez des éléments connexes lorsqu’un élément est supprimé. | Définissez la valeur Propager la suppression d’un rôle de relation. Pour obtenir des effets plus complexes, remplacer ShouldVisitRelationship et ShouldVisitRolePlayer méthodes dans la MyDslDeleteClosure classe, définis dans DomainModel.cs. |
| Conservez la disposition et l’apparence de la forme lors de la copie et du glisser-déposer. | Ajoutez les formes et les connecteurs au fichier copié ElementGroupPrototype. La méthode la plus pratique à remplacer est ElementOperations.CreateElementGroupPrototype()Voir Personnalisation du comportement de copie. |
| Collez des formes à un emplacement choisi, comme la position actuelle du curseur. | Remplacez ClipboardCommandSet.ProcessOnCopy() pour utiliser la version spécifique à l’emplacement de ElementOperations.Merge(). Voir Personnaliser le comportement de la copie. |
| Créer des liens supplémentaires sur coller | Remplacer ClipboardCommandSet.ProcessOnPasteCommand() |
| Activer le glisser-déplacer à partir de ce diagramme, d’autres DLL et autres éléments Windows | Découvrez comment : ajouter un gestionnaire de glisser-déplacer |
| Permettre à une forme ou un outil d’être déplacé sur une forme enfant, tel qu'un port, comme si elle avait été déplacée sur le parent. | Définissez une directive de fusion d’élément sur la classe d’objet cible pour transférer l’objet supprimé au parent. Voir Personnalisation de la création et du déplacement d’éléments. |
| Autorisez un déplacement d’une forme ou d’un outil sur une forme et créez des liens ou des objets supplémentaires. Par exemple, pour permettre à un commentaire d’être supprimé sur un élément auquel il doit être lié. | Définissez une directive de fusion d’éléments sur la classe de domaine cible et définissez les liens à générer. Dans des cas complexes, vous pouvez ajouter du code personnalisé. Voir Personnalisation de la création et du déplacement d’éléments. |
| Créez un groupe d’éléments avec un outil. Par exemple, un composant avec un ensemble fixe de ports. | Remplacez la méthode d’initialisation de boîte à outils dans ToolboxHelper.cs. Créez un prototype de groupe d’éléments (EGP) contenant les éléments et leurs liens de relation. Consultez Personnaliser les outils et la boîte à outils. Incluez les formes de principal et de port dans le protocole EGP ou définissez BoundsRules pour positionner les formes de port lorsque le protocole EGP est instancié. |
| Utilisez un outil de connexion pour instancier plusieurs types de relation. | Ajoutez les Directives de Connexion des Liens (LCD) au Générateur de connexions invoqué par l’outil. Les disques LCD déterminent le type de la relation à partir des types des deux éléments. Pour que cela dépende des états des éléments, vous pouvez ajouter du code personnalisé. Consultez Personnaliser les outils et la boîte à outils. |
| Outils sticky : l’utilisateur peut double-cliquer sur n’importe quel outil pour créer plusieurs formes ou connecteurs en succession. | Dans l’Explorateur DSL, sélectionnez le Editor nœud. Dans la fenêtre Propriétés, définissez Utilise des éléments de boîte à outils sticky. |
| Définir des commandes de menu | Découvrez comment : modifier une commande de menu standard |
| Limiter le modèle avec des règles de validation | Voir Validation dans un langage Domain-Specific |
| Générez du code, des fichiers de configuration ou des documents à partir d’un DSL. | Génération de code à partir d’un langage Domain-Specific |
| Personnalisez la façon dont les modèles sont enregistrés dans un fichier. | Voir Personnalisation du stockage de fichiers et de la sérialisation XML |
| Enregistrez des modèles dans des bases de données ou d’autres supports. | Remplacer YourLanguageDocData Voir Personnalisation du stockage de fichiers et de la sérialisation XML |
| Intégrez plusieurs DLL afin qu’elles fonctionnent dans le cadre d’une application. | Consultez Intégration de modèles à l’aide de Visual Studio Modelbus. |
| Autoriser votre DSL à être étendu par des tiers et contrôler l’extension. |
Étendre votre DSL à l’aide de MEF Partage de classes entre DSL à l’aide d’une bibliothèque DSL Définition d’une stratégie de verrouillage pour créer des segments Read-Only |
Contenu connexe
- Comment définir une langue Domain-Specific
- Écriture de code pour personnaliser un langage Domain-Specific
- Kit de développement logiciel (SDK) de modélisation pour Visual Studio - Langages Domain-Specific
Note
Le Composant de Transformation de modèle de texte est automatiquement installé dans le cadre de la charge de travail de développement d’extensions pour Visual Studio. Vous pouvez également l’installer à partir de l’onglet Composants individuels de Visual Studio Installer, sous la catégorie SDK, bibliothèques et frameworks. Installez le composant sdk de modélisation à partir de l’onglet Composants individuels .