你的项目中的领域特定语言是否需要自己的 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
评论