Domain-Specific Language Tools Glossary

This is a list of terms relating to domain-specific languages.


  • compartment shape
    A shape that includes one or more compartments. A compartment can display a list of elements. The shape can be mapped to a domain class, and each compartment can be mapped to a relationship.

  • constraint
    A condition that defines whether a model is well-formed. Every constraint is implemented in a validation method.


  • debugging project
    The Visual Studio project that is opened in an experimental instance of Visual Studio when you run a DSL project in debug mode.

  • designer definition
    An XML file that contains information about a domain-specific language. It has the file name extension .dsl.

  • domain model
    The representation of a domain-specific language. It includes domain classes, domain relationships between the domain classes, and domain properties on the domain classes.

  • domain class
    A domain model element that represents an entity in a domain-specific language.

  • domain model element
    An element of a domain-specific language. Domain model elements include domain classes, domain relationships, connectors, and shapes.

  • domain path
    The path syntax that is used to locate model elements in a domain-specific language model. Domain paths use the following format: RelationshipName.RolePropertyName\!RoleName.

  • domain relationship
    A domain model element that represents an embedding or reference relationship in a domain-specific language.

  • domain-specific language
    A custom language that is created for a specific problem domain, and that defines entities and relationships in terms of that domain.

  • Domain-Specific Language Designer
    The graphical editor that is used to define a domain-specific language in Visual Studio.

  • Domain-Specific Language Designer Wizard
    The wizard that is used to create a domain-specific language solution in Visual Studio.

  • Domain-Specific Language Tools
    The set of tools that is used to create domain-specific languages. The tools include the Toolbox, the diagram, the DSL Explorer, and the DSL Details window.


  • element merge directive
    A setting that defines how an element or group of elements should be combined when they are added to the domain model. Element merge directives are called when a model element is added from the Toolbox or in a paste operation.

  • embedding relationship
    A domain relationship in which one domain class or domain relationship is defined as the parent of another.

  • experimental build
    An instance of Visual Studio that uses a special registry hive so that developers can debug solutions in an isolated environment.


  • generated API
    Code that is generated from a domain model, and which allows you to write code to access instances of the domain model.

  • generated designer
    The graphical domain-specific language designer that is created by using Domain-Specific Language Tools.

  • generated directive processor
    The directive processor that is automatically generated for a domain-specific language solution. This directive processor uses text templates to process information from the model.


  • In-memory store
    The in-memory cache in which the model is stored. See also store.


  • model element
    An instance of a domain class in a generated domain-specific language designer.


  • reference relationship
    A domain relationship between two domain classes that are not related by embedding.

  • role
    One of the ends (source or target) of a relationship. Properties of a role include its multiplicity and its role player.

  • role player
    A domain class that plays a role in a relationship. A domain class can be a role player for many roles.


  • store
    The cache in which the model is stored. See also in-memory store.

  • swimlane
    A horizontal or vertical line that divides the diagram into partitions.


  • transaction
    A mechanism by which a set of changes can be committed or rolled back in a single operation. Use transactions to wrap changes made to a model in custom code.


  • validation
    Well-formedness constraints on the model. The domain-specific language framework uses built-in constraints and custom constraints to validate models.

See Also


Text Template Glossary