Partager via


Écriture de code pour personnaliser un langage spécifique à un domaine

Cette section indique comment utiliser le code personnalisé pour accéder, modifier, ou la création d'un modèle dans un langage spécifique au domaine.

Il existe plusieurs contextes dans lesquels vous pouvez écrire du code qui fonctionne avec un DÉSOLÉ :

Des instances de classes que vous définissez dans DslDefinition.dsl sont conservées dans une structure de données appelée magasin (IMS) en mémoire ou le magasin . Les classes que vous définissez dans un domaine (prennent toujours un magasin en tant qu'argument au constructeur. Par exemple, si votre DÉSOLÉ définit une classe appelée Example :

Example element = new Example (theStore);

conserver des objets dans le magasin (au lieu de simplement en tant qu'objets ordinaires) offre plusieurs avantages.

  • Transactions. Vous pouvez regrouper une série de modifications associées dans une transaction :

    using (Transaction t = store.TransactionManager.BeginTransaction("updates"))

    {

    // make several changes to Store elements here

    t.Commit();

    }

    Si une exception se produit pendant les modifications, afin que Commit() final ne soit pas effectué, le magasin sera réinitialisée à son état précédent. Cela vous permet de garantir que les erreurs laisser le modèle dans un état incohérent. Pour plus d'informations, consultez Navigation et mise à jour d'un modèle dans le code de programme.

  • relations binaires. Si vous définissez une relation entre deux classes, les instances aux deux extrémités ont une propriété qui accède à l'autre extrémité. les deux extrémités sont toujours synchronisées. Par exemple, si vous définissez une relation de condition parentale avec des rôles nommés Parents et enfants, vous pouvez écrire :

    John.Children.Add(Mary)

    Les deux expressions suivantes sont maintenant remplies :

    John.Children.Contains(Mary)

    Mary.Parents.Contains(John)

    Vous pouvez également obtenir le même effet en écrivant :

    Mary.Parents.Add(John)

    Pour plus d'informations, consultez Navigation et mise à jour d'un modèle dans le code de programme.

  • règles et événements. Vous pouvez définir des règles qui déclenchent chaque fois que des modifications spécifiées sont apportées. Les règles sont utilisées, par exemple, pour contenir des formes du diagramme à jour avec les éléments de modèle qu'elles présentent. Pour plus d'informations, consultez Propagation et réponse aux modifications en attente.

  • sérialisation. Le magasin fournit une méthode standard pour sérialiser les objets qu'il contient dans un fichier. Vous pouvez personnaliser les règles à la sérialisation et la désérialisation. Pour plus d'informations, consultez Personnalisation du stockage de fichiers et de la sérialisation XML.

Voir aussi

Concepts

Personnalisation et extension d'un langage spécifique à un domaine