SharpDevelop解析与学习心得之一------概况以及物理结构


早在一年以前来公司实习的时候,公司就安排我学习sharpdevelop(以下简称SD),说实话,在一年以前,我还不清楚什么是插件呢,那时也没有太多软件设计的经验,学习的时候很慢,看起代码来更是一头雾水...当时看的程度可以用一个词语来形容:一知半解吧!在工作中,我们公司的产品有部分也是基于插件系统开发的,我负责开发维护的产品一般是windows桌面应用程序,越来越感觉到SD是一个好东西,不仅从软件架构上的插件思想值得我们学习,在桌面软件功能上也非常值得我们借鉴,所以从今年年初,重新学习sd,希望这次能够坚持下来,学习SD.同时把学习过程中的所学与心得贴了出来,希望在园子里可以找到更多学习sd的伙伴,大家一同学习,探讨。


一.简介

SharpDevelop是一个开源的.net IDE,是用C#开发的,从最初发展到现在它支持C#开发,VB.net开发,提供自己的编译器,等功能。更加值得学习的是SD的核心是一个插件管理系统,它并不实现什么具体的功能,只预留出扩展的接口。

以往我们所编写的程序,在开发人员编译发布以后就不允许对系统进行扩展和修改了,如果要扩展和修改的话就必须修改系统的原代码,并且重新编译发布。这就造成了很大的麻烦,在众多的解决方法比如提供配置等方法中,最佳的解决方法是利用插件。插件系统就是提供用户可以在现有软件系统上扩展功能的接口,插件就是根据插件系统提供预定义的接口编写扩展功能的模块, 这个模块是以文件的形式存大的,独立与原系统,在程序启动的时候根据配置文件找到相应的插件,并把它挂接到系统中。从而实现了对原系统的扩展。

这样的做法使得程序的扩展性大大增强了,在进行较大的程序开发的时候,可以方便地分给每一个成员完成,并且如果其中一个插件出现问题不会影响到其它的插件的运行,可以方便的Enable,Disable插件;程序的在升级的时候,也是十分方便,安装一个插件就安装一个功能,多一个菜单项,或者工具条,这样多么方便啊,再也不用,打开整个的工程了,节省人力资源啊,及维护成本

我们所熟悉的Java开发环境Eclipse,和图像处理软件PhotoShop都是插件系统的典型实例。

二.物理结构

SD中,物理上有三个项目,分别是ICSharpCode.core,ICSharpCode.SharpDevelop,StartUp

首先ICSharpCode.core是系统的基本插件管理系统,它提供了系统的插件结构,插件的挂接,预定义接口,插件树,以及各种服务,这部分称为SDCore; ,ICSharpCode.SharpDevelopSharpDevelop的个个功能模块,是SD具体功能的实现,以及界面命令等,称为SDBase部分。StartUP负责SD的启动部分,及字符,图片等资源文件。

好了,这是第一篇,就写到这了!如有不对的地方,望指正,期待.....
写的不好,尽管踩吧...

posted @ 2008-02-21 09:24  慧致澜馨  阅读(1173)  评论(3编辑  收藏  举报