Skip to content

Commit 0f4c60b

Browse files
committed
Fixes for 'Learn Build status updates of commit de1a0fd:'
1 parent de1a0fd commit 0f4c60b

14 files changed

+15
-15
lines changed

docs/modeling/getting-started-with-domain-specific-languages.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Getting Started with Domain-Specific Languages
33
description: Explore the basic concepts to define and use a domain-specific language (DSL) created with the Modeling SDK for Visual Studio.
4-
ms.date: 11/04/2016
4+
ms.date: 11/13/2025
55
ms.topic: conceptual
66
author: mgoertz-msft
77
ms.author: mgoertz
@@ -15,15 +15,15 @@ This topic explains the basic concepts in defining and using a domain-specific l
1515
> [!NOTE]
1616
> The Text Template Transformation SDK and the Visual Studio Modeling SDK are installed automatically when you install specific features of Visual Studio. For more details, see [this blog post](https://devblogs.microsoft.com/devops/the-visual-studio-modeling-sdk-is-now-available-with-visual-studio-2017/).
1717
18-
If you are new to DSLs, we recommend that you work through the **VMSDK Lab**, which you can find in this [repository](https://github.com/lumon-Ind/VMSDK)
18+
If you are new to DSLs, we recommend that you work through the **VMSDK Lab**, which you can find in this [repository](https://github.com/lumon-Ind/VMSDK-Labs.git)
1919

2020
## What can you do with a Domain-Specific Language?
2121

2222
A domain-specific language is a notation, usually graphical, that is designed to be used for a particular purpose. By contrast, languages such as UML are general-purpose. In a DSL, you can define the types of model element and their relationships, and how they are presented on the screen.
2323

2424
When you have designed a DSL, you can distribute it as part of a Visual Studio Integration Extension (VSIX) package. Users work with the DSL in Visual Studio:
2525

26-
![Family tree diagram, toolbox, and explorer](../modeling/media/familyt_tudors.png)
26+
![Family tree diagram, toolbox, and explorer](../modeling/media/ )
2727

2828
The notation is only part of a DSL. Together with the notation, your VSIX package includes tools that users can apply to help them edit and generate material from their models.
2929

@@ -55,16 +55,16 @@ To create a new domain-specific language, you create a new Visual Studio solutio
5555

5656
- Click **Domain-Specific Language Designer**, and then click **Next**.
5757

58-
![image](https://github.com/user-attachments/assets/4a344a53-6a6d-4aef-b469-085889b64b4e)
58+
![Create a new DSL project](../modeling/media/create_new_dsl_project.png)
5959

6060
3. **Configure your new project**.
6161

62-
![image](https://github.com/user-attachments/assets/67b233e8-7c74-42a8-9c70-91d0154e17f1)
62+
![Configure your new project](../modeling/media/create_your_new_project.png)
6363

6464
- In the **Project name** box, type **FamilyTree**. Click **Create**.
6565
5. The **Domain-Specific Language Designer Wizard** opens, and displays a list of template DSL solutions.
6666

67-
![image](https://github.com/user-attachments/assets/056bd69f-0c99-4b44-ab00-84b703f9947b)
67+
![Minimal Language template](../modeling/media/minimal_language_project_template.png)
6868

6969
- Click each template to see a description,
7070

@@ -73,7 +73,7 @@ To create a new domain-specific language, you create a new Visual Studio solutio
7373
- For this walkthrough, choose the **Minimal Language** template. Click **Next**.
7474
6. **Define New Model File Type**
7575

76-
![image](https://github.com/user-attachments/assets/dc9ea978-f66a-480a-8998-9ac70ab67639)
76+
![Define new model file type](../modeling/media/define_new_model_file_type.png)
7777

7878
- Enter a file name extension **ftree** for your DSL in the field **What extension should model files use?**. This is the extension that files containing instances of your DSL will use.
7979
> [!IMPORTANT]
@@ -82,7 +82,7 @@ To create a new domain-specific language, you create a new Visual Studio solutio
8282
8383
7. Inspect the other pages (click **Next**) and then click **Finish**.
8484

85-
![image](https://github.com/user-attachments/assets/0f00c29f-3954-4faa-add6-8075ed531242)
85+
![DSL Solution Summary](../modeling/media/dsl_solution_summary.png)
8686

8787
A solution is generated that contains two projects. They are named **Dsl** and **DslPackage**. A diagram file opens that is named **DslDefinition.dsl**.
8888

@@ -142,7 +142,7 @@ You can run the DSL solution as soon as you have created it. Later, you can modi
142142

143143
Your experimental Visual Studio will resemble the following example:
144144

145-
![Domain specific language sample tree in Visual Studio](../modeling/media/dsl_min_2.png)
145+
![Domain specific language sample tree in Visual Studio](../modeling/media/family_tree_model_sample.png)
146146

147147
### The Content of a Model
148148

@@ -206,7 +206,7 @@ Rename the existing domain classes and relationships. For example, starting from
206206

207207
1. In the DslDefinition diagram, rename **ExampleModel** to **FamilyTreeModel**, **ExampleElement** to **Person**, **Targets** to **Children** (and Name to **Parent** ), **Sources** to **Parents** (and Name to **Child**), **Elements** to **People**, and the DomainRelationship **PersonReferencesChildren** to **ParentsHaveChildren**. Also rename the diagram element **ExampleConnector** to **ChildConnector**. You can click each label to change it.
208208

209-
![DSL Definition diagram - family tree model](../modeling/media/familyt_diagr.png)
209+
![DSL Definition diagram - family tree model](../modeling/media/family_definition_diagram.png)
210210

211211
2. Rename the element and connector tools.
212212

@@ -295,7 +295,7 @@ Close the experimental instance of Visual Studio.
295295

296296
3. In **DSL Details**, on the **Decorator Maps** tab, click the check box on an unmapped decorator. In **Display property**, select the domain property to which you want it mapped. For example, map **BirthDecorator** to **BirthYear**. Map the **DeathYear** domain properity to their text decorator too.
297297

298-
![Mapping domain property to text decorator](../modeling/media/familyt_map_prop_decor.png)
298+
![Mapping domain property to text decorator](../modeling/media/family_map_property_decorator.png)
299299

300300
4. Save the DSL, click **Transform All T4 Templates** on the **Build** menu, and press F5.
301301

@@ -360,7 +360,7 @@ Generated material.
360360
2. Rename **TownReferencesPersons** relationship to **Residence**.
361361
3. Rename **Persons** on the left of Residence to **Residents**, and **Towns** to **Residences** on the ritght.
362362

363-
![DSL definition fragment: family tree root](../modeling/media/familyt_towns.png)
363+
![DSL definition fragment: family tree root](../modeling/media/family_tree_towns.png)
364364

365365
> [!NOTE]
366366
> Reference relationships represent cross-references from one part of the model tree to another.
@@ -385,7 +385,7 @@ Generated material.
385385

386386
2. Use the **Diagram Element Map** tool to link the new connector to the relationship between Person and Town.
387387

388-
![Family Tree definition with added shape map](../modeling/media/familyt_town_shape_map.png)
388+
![Family Tree definition with added shape map](../modeling/media/family_town_shape_map.png)
389389

390390
6. Create an element tool for making a new Town.
391391

@@ -449,7 +449,7 @@ foreach(Person child in person.Children)
449449

450450
You can get Class Diagram to understand class structure and use it in the *.tt files. Right click the **DomainClasses.cs** (the subsidiary file of **DomainClasses.tt**) and then click the **View Class Diagram** command.
451451

452-
![Domain Class Diagram](../modeling/media/familyt_class_diagr.png)
452+
![Domain Class Diagram](../modeling/media/family_class_diagram.png)
453453

454454

455455
When you save the *.tt file, it will create a subsidiary file that contains the list of people and their residences. For more information, see [Generating Code from a Domain-Specific Language](../modeling/generating-code-from-a-domain-specific-language.md).
26.2 KB
Loading
16.6 KB
Loading
27.2 KB
Loading
29.6 KB
Loading

0 commit comments

Comments
 (0)