IDE集成
Using Visual Studio as your DSL IDE
Using #develop as your DSL IDESharpDevelop(#develop)
Integrating an IDE with a DSL application
The main difference between creating an IDE and integrating an IDE lies in the capa-
bilities that you provide the user with. In the IDE scenario, you’re providing the user
with the tools to do development. In the integration scenario, you’re allowing the user
to work with the DSL.
Ø ƒActiproSyntaxHighlighter—On the commercial side, ActiproSyntaxHighlighter
comes highly recommended. I haven’t used it myself, but several people I trust
have recommended it. It’s available at http://www.actiprosoftware.com/
Products/DotNet/WindowsForms/SyntaxEditor/Default.aspx.
Ø ƒ #develop—I have used #develop, and one of the nicer things about it is that
you can extract pieces of the IDE and use them in your own application. In
order to create an IDE for a DSL, you’ll want to use the ICSharpCode.Text-
Editor DLL, which contains the text editor and the baseline facilities to enable
code completion.
Ø ƒAqiStar.TextBox—For WPF applications, I can’t say enough good things about
AqiStar (http://www.aqistar.com/) text editor. It’s similar to ICSharpCode.Text-
Editor from the point of view of configuration (down to using the same XML
syntax), it’s simple to work with, and it provides all the features I require.
DSL On Visual Studio的一些参考资料
http://www.domainspecificdevelopment.com/
http://archive.msdn.microsoft.com/vsvmsdk
DSL Tools Lab
http://code.msdn.microsoft.com/DSLToolsLab
http://www.ormfoundation.org/files/folders/norma/default.aspx
NORMA O/R mapping 工具
Process Development Environment
部署的问题
You cannot host a DSL design surface in a standard Windows Forms/WPF application.
However, you can create your own application built on top of the Visual Studio Isolated Shell to host your DSL. The Storyboard Designer sample is an example of hosting a DSL in an isolated shell (although built on the VS 2008 Shell).