你的项目中的领域特定语言是否需要自己的IDE?Visual Studio Shell是选择之一,但是过于庞大不易部署,而且很难使用。Tim Jones的Gemini框架是一个轻量级替代方案。
Gemini基于一组松散耦合的模块,开发者可以根据需求的变化来替换这些模块。开发者可以直接使用下面这些标准组件:
- Shell
- MainMenu(主菜单)
- StatusBar(状态栏)
- ToolBars(工具栏)
- Toolbox(工具箱)
- UndoRedo(撤销/恢复)
这些组件依赖于AvalonDock、Caliburn Micro和MEF。
还有一些可选的模块,而且每个模块都有自己的NuGet包:
- CodeCompiler(代码编译器):用于和C#代码一起工作,它依赖于Roslyn编译器。
- CodeEditor(代码编辑器):面向C#源代码,它基于AvalonEdit。
- ErrorList(错误列表):通用的错误列表。
- GraphEditor(图形编辑器):通用的图形/节点编辑界面。
- Inspector(检查器):类似于属性网格,但是“允许每个编辑器定制自己的视图”。
- Inspector.Xna:Inspector views for 用于Xna数据类型的检查器视图。
- Output(输出):通用输出窗口。
- PropertyGrid(属性网格):标准的属性网格布局。
- Xna:用于处理XNA内容的工具。
Gemini基于Apache 2许可证发布,源代码可以从GitHub上获取。Tim Jones目前已将其应用到了自己的3款工具中:
- Meshellator:面向.NET 4.0的3D资源导入库,支持Autodesk 3DS和Lightwave OBJ等格式。
- Rasterizr
- SlimShader:一款Direct3D着色程序字节码解析器,有.NET版本和C++版本。
查看英文原文:Build Your Own IDE with Gemini
查看中文原文:使用Gemini构建自己的IDE