How Are DSLs Used in Model-Driven Development?
Microsoft has learned from past industry experiences, and plans to avoid the pitfalls of CASE by adopting an approach to model-driven development based on the following ideas: • A model should be a first-class artifact in a project—not just a piece of documentation waiting to become outdated. Models have a precise syntax, are often best edited and viewed using a graphical tool, and embody semantics that determine how domain-specific concepts in models map to other implementation artifacts, such as code, project structures, and configuration files. In this way, a model is a lot like a source code file, and the mechanisms that synchronize it with other implementation artifacts are a lot like compilers. • A model represents a set of abstractions that support a developer in a well-defined aspect of development. For example, consider the task of producing a service-oriented application that connects components using Web services. Given all the other tasks a developer must focus on to build