|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
About Domain-Specific Languages
Updated: July 2008
Unlike a general-purpose language such as C#, a domain-specific language is designed to handle a particular problem space, or domain. Domains can be defined in many different ways. Some domains are associated with specific industries or kinds of business, for example, the insurance domain, the financial services domain, or the library domain. Other domains relate to specific kinds of software development, for example, Web service components or GUI components.
Typically, domain-specific languages are created when a development team has to write similar code for several different projects. For example, a team may have to develop several different insurance policy applications. The applications may use the same constructs, for example, a table that specifies the policy prices for different neighborhoods, in different ways. In a domain-specific language, the price/neighborhood table can be a language element that is handled differently in each application.
Domain-specific languages can be either textual or graphical. An example of a textual domain-specific language is an XML schema. Textual domain-specific languages are difficult to develop and debug, and non-technical people may find them hard to understand. Graphical domain-specific languages are easier to work on and easier to use for communicating with non-developers.
Domain-Specific Language Tools lets you create a domain-specific language that has your own graphical designer and your own diagram notation, and then use the language to generate appropriate source code for each project.
This section contains general information about the domain-specific development process, and an overview of the Domain-Specific Language Tools (DSL Tools) application and its frequently used elements.