Partager des classes entre DLL
Dans le SDK Visualization and Modeling Visual Studio, vous pouvez créer une définition DSL incomplète que vous pouvez importer dans un autre DSL. Cette approche vous permet de factoriser des parties communes de modèles similaires.
Notes
Le composant Transformation de modèle de texte est automatiquement installé dans le cadre de la charge de travail Développement d’extensions Visual Studio. Vous pouvez aussi l’installer à partir de l’onglet Composants individuels de Visual Studio Installer, sous la catégorie SDK, bibliothèques et frameworks. Installez le composant Modélisation de SDK à partir de l’onglet Composants individuels.
Créer un projet DSL
Créez un projet DSL et choisissez le modèle de solution Bibliothèque DSL.
Un projet DSL unique est créé avec un modèle vide.
Vous pouvez ajouter des classes de domaine, des relations, des formes, etc. Les éléments de la bibliothèque n’ont pas besoin de former une seule arborescence d’incorporation. Pour définir une relation que les importateurs peuvent utiliser, créez deux classes de domaine et créez la relation entre elles.
Envisagez de définir le modificateur d’héritage des classes de domaine sur
Abstract
.Vous pouvez ajouter des éléments que vous définissez dans l’Explorateur DSL, comme des Générateurs de connexions.
Vous pouvez ajouter des personnalisations qui nécessitent plus de code, comme des contraintes de validation.
Sélectionnez Transformer tous les modèles.
Créez le projet.
Lorsque vous distribuez le DSL à utiliser par d’autres personnes, vous devez fournir à la fois l’assembly compilé (DLL) et le fichier DslDefinition.dsl. Vous trouverez l’assembly compilé dans un dossier sous Dsl\bin*.
Importer une bibliothèque DSL
Dans une autre définition DSL, dans l’Explorateur DSL, cliquez avec le bouton droit sur la classe racine du DSL, puis sélectionnez Ajouter une nouvelle importation DslLibrary.
Dans la fenêtre Propriétés, définissez le Chemin d’accès du fichier de la bibliothèque. Vous pouvez utiliser un chemin relatif ou absolu.
La bibliothèque importée apparaît dans l’Explorateur DSL, en mode lecture seule.
Vous pouvez utiliser les classes importées comme classes de base. Créez une classe de domaine dans le DSL qui importe et, dans la fenêtre Propriétés, définissez Classe de base sur une classe importée.
Sélectionnez Transformer tous les modèles.
Ajoutez au projet DSL une référence à l’assembly (DLL) qui a été créé par le projet de bibliothèque DSL.
Générez la solution.