最近接触了一些插件系统框架:
1. WW的插件
2. 蒋波涛书中介绍的插件
3. SharpDevelop的插件
4. 公司的插件
这里可以将它们归为两类:一中依赖xml文件配置插件项的属性,另一种不依赖xml插件。当然不管依赖不依赖xml,.net平台都利用了反射来实现。
(1)依赖xml的配置插件项属性的有:SharpDevelop
(2)不依赖xml配置插件项的有:ww插件框架(依赖xml配置自动加载项,但是不是配置插件项的属性,ww主要是动态编译插件项这一块是不依赖xml的);蒋波涛的AE的插件(可能ArcGIS的插件结构与此类似)。
在公司则先是不依赖Xml,后又改成依赖xml配置菜单项。
个人感觉两种方式各有利弊,不依赖xml的根据方便软件的升级,对于主框架相对固定的,如ArcGIS必须包括Mapcontrol和PageLayoutControl,这种方式更加简单易学;依赖xml的方式更加灵活,可以快速利用已有的dll配置新系统,这种系统扩展的空间更大。
当然这些也都不是绝对的。