Domain Specific Language in Visual Studio

Một domain specific language (DSL) là một kí hiệu, thường mang tính đồ họa (graphical), được thiết kế để được sử dụng cho một mục đích cụ thể. Theo mặc định, những ngôn ngữ như UML là mang mục đích chung (general-purpose). Trong một DSL, bạn có thể định nghĩa các kiểu thành phần mô hình (model element) và những mối liên hệ của chúng và cách chúng được mô tả trên màn hình.

Khi bạn đã thiết kế một DSL trong Visual Studio, bạn có thể phân bổ nó như một phần của một gói thành phần mở rộng tích hợp của Visual Studio (Visual Studio Integration Extension – VSIX).

IC393128

Kí hiệu chỉ là một phần của một DSL. Bên cạnh kí hiệu, gói VSIX của bạn bao gồm các công cụ mà người dùng có thể lựa chọn sử dụng để giúp họ chỉnh sửa và tạo ra đối tượng từ những mô hình của họ.

Một trong những ứng dụng chính của các DSL là tạo ra mã chương trình (program code), các tập tin cấu hình và các đối tượng khác. Đặc biệt là trong những dự án lớn và những dòng sản phẩm (product line), nơi mà một số kiểu của một sản phẩm sẽ được tạo, việc tạo ra nhiều kiểu thay đổi từ các DSL có thể làm cho sự tin cậy tăng lên và phản hồi nhanh chóng với những thay đổi theo yêu cầu.

The Content of Model

Nội dung của một tập tin mà là một đối tượng của một DSL thì được gọi là model. Model này bao gồm các model elementlink (liên kết) giữa các thành phần. Định nghĩa DSL xác định các kiểu của các model element và link có thể sử dụng trong model. Ví dụ, trong một DSL được tạo ra từ Minimal Language template, chỉ có một kiểu model element và một kiểu link.

Định nghĩa DSL có thể xác định cách model xuất hiện trên một diagram (lược đồ). Bạn có thể chọn từ một tập các kiểu hình (shape) và phần kết nối (connector). Bạn có thể định nghĩa một số hình có thể xuất hiện bên trong những hình khác.

Bạn có thể xem qua một model theo dạng cây (tree) trong khi vẫn có thể chỉnh sửa model này.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s