|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. ArchiveDisclaimer|
Domain-Specific Language Tools
You can use a domain-specific language to perform a specific task in a given problem domain. This makes it different from a general-purpose language. By using Domain-Specific Language Tools, you can build customized modeling tools. You can define a modeling language and implement it very simply. For example, you can create a specialized language that describes a user interface, a business process, a database, or the flow of information. Then you can generate code from those descriptions.
You can use Domain-Specific Language Tools to generate visual designers that are customized for your problem domain. For example, you can create a tool to describe concepts that are specific to how your organization models business processes. If you are building a state chart tool, you can describe what a state is, what properties a state has, what kinds of states exist, how transitions between states are defined, and so on. A state chart that describes the status of contracts in an insurance company is superficially similar to a state chart that describes user interaction among pages on a Web site. However, the underlying concepts between the two state charts will differ significantly. By creating your own domain-specific language and custom-generated designer, you can specify exactly what state chart concepts you need in your tool.
Domain-Specific Language Tools is part of Visual Studio 2008 SDK. To download it, see Visual Studio 2008 SDK 1.1 (http://go.microsoft.com/fwlink/?LinkId=193420).
For troubleshooting and advice, see the Visualization and Modeling Forum (http://go.microsoft.com/fwlink/?LinkID=186074).
For additional supplemental information about Domain-Specific Language Tools, see Domain-Specific Development with Visual Studio DSL Tools (http://www.domainspecificdevelopment.com).