Sharpdevelop学习

Sharpdevelop的项目结构

Sharpdevelop整个的体系结构大体上分为三个部分,分别如下
Libraries

这一部分定义了整个解决方案所用到的一些独立的类库,它们本身可以认为是独立于整

个解决方案的,没有引用任何其它类库,因此它们可以很容易的应用到第三方软件中。

这里面对我们最重要的有两个,分别是ICSharpCode.TextEditor和NRefactory.
Main

这一部分是最重要的部分,整个IDE的大部分业务逻辑都在这一部分实现,也是最复杂

的部分,它引用了Libraries里面的所有类库。

对我们来说,最重要的是这两个项目ICSharpCode.SharpDevelop和

ICSharpCode.SharpDevelop.Dom
文档对象模型(DOM)是与平台和语言无关的接口,允许程序和脚本动态地访问和更新

文档的内容、结构和样式。
Addins

这一部分定义了项目中用到的插件,虽然理论上说它们不是IDE必不可少的部分,但是

它们的存在是整个项目的功能得到了很好的扩充。它们会引用上面两个部分中的一些类

库。

Sharpdevelop学习(2)
调试Sharpdevelop

对于已经存在的项目,最好的学习方法就是通过调试来了解它的运行原理和设计思想,

当然Sharpdevelop也不例外,下面我们就简单介绍一下如何对它进行调试。

因为Sharpdevelop的一些项目使用VS的IDE打不开,所以最好的方法还是使用

Sharpdevelop本身进行调试。

首先找到Main文件夹,然后找到StartUp项目,这个就是解决方案的入口项目,把它设

置为启动项目。

该项目下有一个SharpDevelopMain.cs文件,里面有一个Main方法,该方法既是程序的

入口点,通过跟踪此入口点就可以顺藤摸瓜,弄清楚整个系统的运行脉络。


 
系统运行路线图

系统运行起来以后,首先会去调用SharpDevelopMain的RunApplication方法,在此方法

里,系统首先会得到一些文件夹信息,比如根目录(ApplicationRootPath),配置文

件(ConfigDirectory)的目录,缓存文件(DomPersistencePath)的目录,插件文件

(Addins)的目录;然后系统会创建SharpDevelopHost的实例,在实例化的过程中会调

用CallHelper. InitSharpDevelopCore()方法,在此方法里会初始化一些核心的服务,

比如日志,输出,字符串格式化,资源服务等。
等这些核心的服务都万事俱备以后,我们的主角就该出场了,就是工作台(Workbench

)。我们可以把工作台看作整个IDE的呈现部分,它通过这些核心的服务来处理我们的

代码和其他相关文件。工作台是通过WorkbenchSingleton

(ICSharpCode.SharpDevelop.Gui)类来管理的,它实例化的工作台实例是

DefaultWorkbench;在实例化工作台时会进行一些相关服务的初始化工作,比如显示服

务,文件服务,状态服务,文件解析服务,项目服务等,最后系统通过

Application.Run(WorkbenchSingleton.MainForm);来运行工作台的主窗口,我们就可

以在桌面上看到IDE了。

 

文章源地址

http://www.cnblogs.com/taxhaven/articles/1725186.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值