• 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:存放全局配置文件

  • 相关阅读:
    [SDOI2013]直径(树的直径)
    [ZJOI2012]旅游(树的直径)
    [SDOI2011]消防(树的直径)
    【模板】2-SAT 问题(2-SAT)
    [HNOI2006]公路修建问题
    速度限制(分层图)
    [JLOI2011]飞行路线(分层图)
    【洛谷 P3194】 [HNOI2008]水平可见直线 (单调栈)
    【洛谷 P3187】 [HNOI2007]最小矩形覆盖 (二维凸包,旋转卡壳)
    【洛谷 P1452】 Beauty Contest (二维凸包,旋转卡壳)
  • 原文地址:https://www.cnblogs.com/SharpDeveloper/p/1737593.html
Copyright © 2020-2023  润新知