[架构模式] 插件式程序开发及其应用(C#) - 3(整理后的完善版本)
(本文为本人原创,转载请著名作者及本页网址,谢谢-阿P)1、定义所谓“插件模型”,指应用程序由一些动态的独立模块构成,每个模块均具有一个或多个服务,并满足一定的插件协议,能够借助主程序实现主程序-插件;插件-插件之间的通讯。应用该模型的系统,具有以下特点:1) 所有业务功能均是“砖块”,更新及维护简便2) 子系统的概念变得模糊,子系统是多个模块的组合3) 有效避免功能的重复开发4) 可以根据用户需求定制系统,真正的随需而变5) 当功能插件达到一定规模时,应用系统的开发将变成二次开发6) 实现化整为零的组织结构,每个模块由微小的团队负责,甚至一个人负责7) 开发能力要求降低,类似于报表、查询等易变、简单的模块,维护人员即可完成2、体系结构组成
系统结构如下图:http://p.blog.csdn.net/images/p_blog_csdn_net/penua/pluginview.JPG图一 系统结构示意图
系统组成元素如下:1) 应用程序2) 应用程序配置文件3) 插件协议4) 插件5) 共通组件、控件6) 远程访问代理7) 中间层8) 底层数据库
3、详细说明1) 应用程序应用程序是用户操作的平台,也是所有业务插件的容器,其本身不会有太多的功能,主要通过读取配置文件来配置整个应用程序;包含以下功能:·主画面·界面配置管理·插件管理2) 应用程序配置文件包括界面配置和插件配置,采用加密过的XML文件保存配置·界面配置·插件配置3) 插件协议(PluginSdk)是整个插件模型的运行核心,主要包括用于插件的基类和用于通讯的控制类·插件基类(PluginBase)·插件控制类(PluginControl)4) 插件基于插件协议,借助共通插件、控件及远程访问代理和业务层配合实现特定的业务·插件基类派生类·业务功能实现类5) 共通组件、控件是整个体系的运行基础,也是产品化的基础·权限控制套件·界面控件库·常量库·工具库6) 远程访问代理也许系统是基于Web服务的,也许系统是基于其它服务的,总之系统的业务实现很大部分放在远程,这个代理就可以让客户端很好的访问远程服务。·远程访问代理类7) 中间层实现客户端与数据库端的通讯,抛开繁杂的层次步骤,提供简单高效的通讯服务·服务外观层(Web Service)·数据访问层(DataAccess)·数据库代理(DBHelp)/中间件(MiddleWare)8) 底层数据库可以是Oracle,也可以是SqlServer(在实现中间件的前提下),在现有情况下,主要业务还由存储过程来实现。
页:
[1]