Facilitating the spread of knowledge and innovation in professional software development



Choose your language

InfoQ Homepage News Build Your Own IDE with Gemini

Build Your Own IDE with Gemini


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++.
We need your feedback

How might we improve InfoQ for you

Thank you for being an InfoQ reader.

Each year, we seek feedback from our readers to help us improve InfoQ. Would you mind spending 2 minutes to share your feedback in our short survey? Your feedback will directly help us continually evolve how we support you.

Take the Survey

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.