Skip to content

Gemini is an application shell similar in concept to the Visual Studio Shell. It uses AvalonDock 2.0 and has an MVVM architecture based on Caliburn Micro.

License

StompyRobot/gemini

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gemini

What is this?

Gemini is a WPF framework designed specifically for building IDE-like applications. It is built on:

Screenshot

What does it do?

Gemini allows you to build your WPF application by composing separate modules. This provides a nice way of separating out the code for each part of your application. For example, here is the (very simple) module used in the demo program:

[Export(typeof(IModule))]
public class Module : ModuleBase
{
	[Import]
	private IPropertyGrid _propertyGrid;

	public override void Initialize()
	{
		MainMenu.All
			.First(x => x.Name == "View")
			.Add(new MenuItem("Home", OpenHome));

		var homeViewModel = IoC.Get<HomeViewModel>();
		Shell.OpenDocument(homeViewModel);

		_propertyGrid.SelectedObject = homeViewModel;
	}

	private IEnumerable<IResult> OpenHome()
	{
		yield return Show.Document<HomeViewModel>();
	}
}

For full details, look at the demo program.

What modules are built-in?

Gemini comes with three modules:

  • An output pane
  • A property grid pane
  • A status bar

What projects use Gemini?

I've used Gemini on several of my own projects:

Acknowledgements

Much of the original ideas and code came from Rob Eisenberg, creator of the Caliburn Micro framework. I have extended and modified his code to integrate better with AvalonDock 2.0, which natively supports MVVM-style binding.

About

Gemini is an application shell similar in concept to the Visual Studio Shell. It uses AvalonDock 2.0 and has an MVVM architecture based on Caliburn Micro.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 98.0%
  • PowerShell 2.0%