Do you need your own IDE for your project’s domain specific language? One option is Visual Studio Shell, but that is often far too massive to deploy and can be difficult to work with. A lightweight alternative is the Gemini framework by Tim Jones.
Gemini is based on a set of loosely coupled modules that you can replace as your needs change. Out of the box you get these standard components:
- Shell
- MainMenu
- StatusBar
- ToolBars
- Toolbox
- UndoRedo
These core components rely on AvalonDock, Caliburn Micro, and MEF.
There are several optional modules, each of which has its own NuGet package:
- CodeCompiler: For working with C# code. This relies on the Roslyn copmpiler.
- CodeEditor: For C# source files, this is based on AvalonEdit.
- ErrorList: Generic error list
- GraphEditor: A general purpose graph / node editing UI.
- Inspector: Similar to a property grid, but it “allows each editor to customize its own view”
- Inspector.Xna: Inspector views for Xna data types.
- Output: Generic output window
- PropertyGrid: Standard property grid layout
- Xna: Tools for working with XNA content.
Gemini is released under the Apache 2 license and the source is available on GitHub and is currently used in three of Tim Jones’ tools.
- Meshellator: 3D asset import library for .NET 4.0. Supported formats are Autodesk 3DS and Lightwave OBJ.
- Rasterizr
- SlimShader: SlimShader is a Direct3D shader bytecode parser for .NET and C++.