使用Gemini构建自己的IDE

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

时间: 2024-08-19 08:07:44

使用Gemini构建自己的IDE的相关文章

基于 Groovy 的自动化构建工具 Gradle 入门(转)

  本人工作之初没有使用自动化构建,后来敏捷了,开始使用 Ant - 完全面向过程的定义步骤,不进行依赖管理.再发展到 Maven,面向对象的方式管理工程,有了依赖的管理,JAR 包统一从中央仓库获得,保存在本地库.同时产生了 Ivy + Ant,让 Ant 也能管理依赖,不过 JAR 包依赖仓库也是用 Maven 的. 前面都是用 XML 来配置的,虽说 XML 的标签描述性也很强,但阅读性还是有些牵强,并且 Maven 和 Ant+Ivy 都需要 IDE 的支持,比如在 Eclipse 中有

Android应用性能优化最佳实践.1.2 Android Studio使用入门

1.2 Android Studio使用入门 1.2.1 Android Studio安装 这里我们以在Windows系统上安装Android Studio为例,具体的安装步骤如下: 1)安装JDK,且为JDK 1.6及以上版本. 2)下载Android Studio安装包:developer.android.com/sdk/installing/studio.html. 3)单击安装包开始安装,首先进入选择组件界面,如图1-1所示.   图1-1 选择安装组件 一般已经安装Eclipse或其他

最适合初学者的语言是什么?

[编者按]本文作者为 Chris Ward,主要分享了 Chris 在多年的编程教学中,积累下的一些经验教训,以及在他眼中,新手学习语言时的注意事项.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 和许多我这个岁数的人一样,我学编程是从BASIC语言开始的.那时候,你会买很多杂志回家,杂志上有整篇整篇的代码,教你编游戏,或者是一些基础的应用程序–你和朋友们花了好几个小时勤勤恳恳地把那些都敲进电脑里,结果却发现这儿或那儿有一个印刷错误,反正游戏就是运行不了.于是你们只好作罢.其实这件事最

DelphiXE环境认知(第一章 Project Options)

DelphiXE环境认知 作者:帅宏军 时间:2011年4月 说明:根据DelphiXE的自带帮助翻译而来,为作者个人看法,如有翻译不当,仅供参考. shuaihj@163.com http://blog.csdn.net/shuaihj 第一章. Project Options Ø Project > Options 这个页面用来设置当前项目的Delphi编译器选项.Default勾选后可将当前的配置作为新工程的默认配置. 说明: 并不是这里所有的选项适用于所有类型的项目.例如,DCP out

spring 和hibernate项目制作可执行的jar包

spring 和hibernate项目制作可执行的jar包 如何把spring和hibernate项目制作可运行的jar包呢? 就是在命令行中运行 Java -jar  xxx.jar 就可以运行java程序.例如  我的这个项目使用了hibernate和spring,不是web项目. 构建工具:maven IDE:eclipse 目录结构如下:     上图中beans.xml是spring的配置文件,内容如下:   Xml代码   <?xml version="1.0" en

JUnit 5系列之基础入门介绍

上周我们刚刚搭建好了 JUnit 5 的环境,现在我们可以写测试了.这节就让我们来写它几个吧! 概述 本文章是这个 JUnit 5 系列的一部分: 环境搭建 基础入门 架构体系 扩展模型(Extension Model)  条件断言 注入 动态测试 ... (如果不喜欢看文章,你可以戳这里看我的演讲,或者看一下最近的 vJUG 讲座,或者我在 DevoxxPL 上的 PPT. 本系列文章都基于 Junit 5发布的先行版 Milestone 2.它可能会有变化.如果有新的里程碑(mileston

Android应用性能优化最佳实践.

移动开发 Android应用性能优化最佳实践 罗彧成 著 图书在版编目(CIP)数据 Android应用性能优化最佳实践 / 罗彧成著. -北京:机械工业出版社,2017.1 (移动开发) ISBN 978-7-111-55616-9 I. A- II. 罗- III. 移动终端-应用程序-程序设计 IV. TN929.53 中国版本图书馆CIP数据核字(2016)第315986号 Android应用性能优化最佳实践 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037

NetBeans IDE 6.0指南之如何构建GUI程序

这篇入门教程将教会您怎样创建一个简单的人机交互界面以及向其中添加简单 的后台功能. 特别地,我们将向您展示如何按 Swing 规范编写控制按钮和域代 码. 我们将会使用到布局管理.设计简单 GUI 界面以及添加一些"按钮(button) "和"文本字段(text field)"组件. "文本字段"是用来接收输入和显示输出 的,"按钮"在前端用来起动相应功能. 我们将创建的应用程序会是一个简单但 实用的计算器. 获得更多GUI设

构建富Internet应用程序 :使用OpenLaszlo、Eclipse Laszlo IDE和Web Tools

开始之前 本教程演示如何使用 OpenLaszlo 平台和 Web 服务来开发.打包和 部署一个已编写好的富 Internet 客户机.富客户端利用了后端的服务(这些后端服务是 通过使用 SOAP Web 服务的通用 SOA 方法提供).还将了解如何有效地使用 Eclipse Laszlo IDE 和 Eclipse Web Tools 来使得开发更加容易且富有生产效率. 关于 本教程 由于大多数 Web 应用程序都构建于 HTML 和 HTTP 之上,所以 Web 对于 用户经常使用的应用程序