SharpDevelop源码剖析(一)————概述

从前的工作中用需要在SharpDevelop的体系结构上,开发出一个工具。所以看了一下SharpDevelop的源码,然后就被SharpDevelop中的插件体系所吸引。所以想写点读这个源代码的心得,开源工程是学习编程的好材料,但是就是相关资料不好找,SharpDevelop的开发小组倒是出过一本书来阐述它的体系结构,但是基于比较老的版本,很多内容以经和现在的版本不同了,希望我写的Blog大家可以交流一下学习SharpDevelop源码的心得,互相促进,刚刚开博,而SharpDevelop的结构也很复杂,分析起来不容易,写的不好,请多见谅。

代码下载 Downloads for SharpDevelop 3.2 Source Code

SharpDevelop最重要的特点就是其灵活的插件体系,扩展性非常好,如果Eclipse一样,可以方便的进行二次开发。XML文件在其中如同粘合剂一样,将每个模块联系起来,插件之间可以完全做到高内聚,低耦合。

由于个人能力所限,我不太可能把SharpDevelop完全剖析明白,主要想写的几个部分就是插件模型,主程序和几个总要服务等,最头疼的估计个人搞不定的是代码解析部分。如果有时间的话我也会尽可能的去探究一下。

首先看一下SharpDevelop的解决方案的结构:

1. Addin:这个文件夹下是自带插件,

      Misc文件夹下是一些工具插件,如正则表达式,单元测试等工具。

      Backend文件夹下是编程语言对应的工程和文件解析及其它处理相关的工程,每一种语言有一个相应的工程,

      Display Bindings下面是各种设计器的工程,如Winform设计器。

2.Library: 这个文件夹下是公用模块,

     NRefectory用来解析C#和VB.NET代码文件(没有深入研究过,可能说的不准确),        

     ICSharpCode.TextEditor是一个代码文本编辑控件,

     WinformUI是一个开源工程,用来实现VS中子窗口拖放订制布局的功能。

     ICSharpCode.Build.Tasks: 处理编译工程的工作(没有深入研究过,可能说的不准确)

    Aga.Controls: 一些帮助类和控件

3. Main:这个文件夹下是SharpDevelop的核心部分

    ICSharpCode.Core.Presentation:可能是这个版本新添加的,没研究过

    ICSharpCode.SharpDevelop.BuildWorker:同上

    ICSharpCode.Core:插件体系核心,基础服务及常用功能辅助类

    ICSharpCode.Core.WinForms: 自定义UI控件

    ICSharpCode.SharpDevelop:主界面及功能模块

    ICSharpCode.SharpDevelop.Dom:基本代码文件解析模块

    ICSharpCode.SharpDevelop.Sda:SharpDevelop运行时的AppDomain

    ICSharpCode.SharpDevelop.Widgets: UI部件

    StartUp:程序入口

每个工程下面都有一个Configuration文件夹,里面为程序集版本信息文件

资源文件放在Resources文件夹。

重要路径:

%sharpdevelop%\addin:所有插件都放在这文件夹下,程序启动后会有这个文件夹中查找*.addin文件,以此来加载插件

%user_app_data%ICSharpCode:存放全局配置文件

转载于:https://www.cnblogs.com/SharpDeveloper/archive/2010/05/17/1737593.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值