你的项目中的领域特定语言是否需要自己的IDE?Visual Studio Shell是选择之一,但是过于庞大不易部署,而且很难使用。Tim Jones的Gemini框架是一个轻量级替代方案。

Gemini基于一组松散耦合的模块,开发者可以根据需求的变化来替换这些模块。开发者可以直接使用下面这些标准组件

  • Shell
  • MainMenu(主菜单)
  • StatusBar(状态栏)
  • ToolBars(工具栏)
  • Toolbox(工具箱)
  • UndoRedo(撤销/恢复)

这些组件依赖于AvalonDockCaliburn 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

查看中文原文使用Gemini构建自己的IDE

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

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

    本人工作之初没有使用自动化构建,后来敏捷了,开始使用 Ant - 完全面向过程的定义步骤,不进行依赖管理.再发展到 Maven,面向对象的方式管理工程,有了依赖的管理,JAR 包统一从中央仓库获得,保 ...

  2. Android官方技术文档翻译——开发工具的构建概述

    本文译自Android官方技术文档<Build Overview>,原文地址:http://tools.android.com/build. 因为<Android Lint Chec ...

  3. 2.Spring构建REST Web Service

    上篇文章我们已经对Spring 已经有了一个初步的认识,接下来本篇文章我们将继续一起在官网学习新技术. 原文地址:https://spring.io/guides/gs/rest-service/ 本 ...

  4. selenium+jenkins网页自动化测试的构建

    jenkins+selenium可以做到对web自动化的持续集成. Jenkins的基本操作: 一.新建视图及job 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item ...

  5. Python IDE和编辑器

    1.什么是IDE? IDE也就是集成开发环境,较常用的有PyCharm 2.编辑器 (1)Sublime Text Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Pytho ...

  6. 如何在IDE的开发环境中启动Studio和本地build出一个product

    1.在run configuration那一个把Program to Run改成如下配置 2.在本地自己用maven构建一个liferay IDE 命令 clean verify -Pinstalle ...

  7. Flutter —快速开发的IDE快捷方式

    老孟导读:这是老孟翻译的精品文章,文章所有权归原作者所有. 欢迎加入老孟Flutter交流群,每周翻译2-3篇付费文章,精彩不容错过. 原文地址:https://medium.com/flutter- ...

  8. 第一章-第十四题(Hello world程序)

    题目:请找一个同学结对 (参看本书结对编程的内容),两人共同工作 (不能分开干活),从上面的列表中选取两个平台,在每个平台上,写一个最简单的 "Hello World" 类型的程序 ...

  9. 从 Eclipse 迁移至 Android Studio

    从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...

随机推荐

  1. CSS 布局

    近日开发中,总感觉页面布局方面力不从心.以前也曾学过这方面的内容,但是不够系统,因此我打算整理一下. 在web 页面中一般有 table 和 css+div 两种布局方式. 其中css+div 又分为 ...

  2. Android 登录界面与首页的设计

    全屏效果 //取消标题,取消状态栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(Wind ...

  3. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  4. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  5. java的布尔运算符和位运算符

    1.布尔运算符 &&  逻辑与: ||   逻辑或: !=  不等于: 三元操作符:?: :表达式为  condition?expression1:expression2(当条件为真时 ...

  6. mysql优化

    一.优化事项 1. 数据库(表)设计合理    (不合理设计导致内伤)    我们的表设计要符合3NF   3范式(规范的模式) , 有时我们需要适当的逆范式.2. sql语句的优化(索引,常用小技巧 ...

  7. 转:Delphi 函数大全

    Delphi 函数大全 - xiucaiyao的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xiucaiyao/article/details/4544039 名 ...

  8. Windows安装程序 报错 “已安装了较新版本” 导致无法安装程序的解决方法

    打开注册表 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products ,“查找”程序名称 如果有程序名和安装程序相同的 ,删除整个 项 ! 然后就 ...

  9. HDU4787 GRE Words Revenge(AC自动机 分块 合并)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4787 Description Now Coach Pang is preparing for ...

  10. js中的文本编辑器控件KindEditor---那些打酱油的日子

    使用文本编辑器控件KindEditor渲染文本域页面显示 this.sync()同步KindEditor的值到textarea文本框 editor.isEmpty()判断文本域是否是空 editer. ...