- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WOSS系统框架及其应用 亿阳信通股份有限公司 2006年8月·北京 系统框架简介 基本特征 灵活的插件模式 框架以插件(AddIn)的方式对应用的各个模块进行管理,可以对应用的所有模块进行灵活的配置、卸载和替换。 轻量级容器 框架以容器的方式对应用对象的生命期以及依赖关系进行管理,解决插件体系中应用对象的依赖决议问题。 基于单件的公共服务框架 框架以服务单件对象的方式来提供诸如鉴权、日志、配置等公共功能。 系统框架简介 基本功能 插件管理 包括插件的开发、部署以及替换。 对象依赖决议 包括服务对象定位和对象属性赋值 公共服务组件 包括单件对象管理服务、文件系统操作服务、配置信息服务、字符串解析和图片装载服务、子窗口布局服务、菜单命令服务、窗口联动管理服务、资源管理服务、ToolTip支持服务、拖拽支持服务等等。 系统框架结构 – 插件体系 物理结构 在AddIn插件体系中,每个插件是由一组.dll的动态连接库和一个.addin的插件文件构成。 系统框架结构 – 插件体系 逻辑结构 插件体系是由插件树构成。 插件树包括插件树节点、代码子(Codon)对象以及条件(Codition)对象。 插件通过配置文件建立插件树节点。 系统将所有插件配置的插件树节点以统一的逻辑树方式组织起来。 通过节点的Path,系统可以定位到任何一个插件树节点。 从任何插件树节点开始,系统是采用后序遍历的方式遍历它所辖的插件子树,以实现特定的功能。 系统框架结构 – 插件体系 Codons Codon,代码子对象,它被用于创建插件中的应用对象或者用于执行插件模块中初始化逻辑。 Codon 对象与插件树节点关联,当系统遍历插件树节点的时候,通过调用相应的Codon对象实现相应的插件逻辑。 针对某种特定的逻辑功能单元,都可以定义成Codon。 Codon 既可以代表具有逻辑层次结构的对象,又可以代表递归调用中的一个环节。 系统框架结构 – 插件体系 Codon 接口说明 在Codon接口定义中: 属性 HandleConditions 表示Codon是否需要处理条件对象,如果返回true,系统将忽略与之相关的条件对象。 属性 ID 表示Codon的ID,在同一个父节点下的直接子节点ID必须唯一。 属性 InsertAfter 表示Codon的调用顺序,字符串数组保存的是兄弟节点的ID,表示将在这些节点调用完成之后,才能调用该Codon。此属性可以为null,表明调用顺序无所谓。 属性 InsertBefore 表示Codon的调用顺序,字符串数组保存的是兄弟节点的ID,表示将在这些节点调用完成之前,必须先调用该Codon。此属性可以为null,表明调用顺序无所谓。 属性 InsertOrder 表示Codon的调用顺序,整数从零开始,从小到大。缺省情况下,Codon是按照它们在配置文件中声明的顺序被调用。 方法 BuildItem 该方法是Codon的核心,Codon真正需要实现的逻辑就是由它来完成,是在插件树遍历过程中被调用的主函数,它的参数如下: 1、owner: 从字面上理解,这应该是Codon的所有者,但实际上这更多的是用作上下文对象。 2、subItems: 因为插件树采用后序遍历,所以subItems是其所有子节点创建的对象集合。 3、conditions: 插件树节点对应的条件对象集合。 系统框架结构 – 插件体系 Conditions Condition,条件对象,在插件树遍历过程中,用于决定是否忽略某些插件树节点,或者直接通知Codon对象当前的条件状态。 Condition对象可能与一个或者多个插件树节点关联,反之亦然,所以一般情况下,一个插件树节点。 Condition对象包括条件判断和动作两个部分,当条件验证失败时将发出相应的动作。 系统框架结构 – 服务体系 系统框架结构 – 轻量级容器 BOCO Inter-Telecom ?2006 BOCO Inter-Telecom Co. All rights reserved. 亿阳信通 BOCO Inter-Telecom 马海南 不是简单的Plugin,AddIn并不限制接口、功能以及组织方式。 所谓依赖决议,是指当对象甲需要引用对象乙时,不需要在对象甲或第三方代码中强行绑定,而是在容器的帮助下找到对象乙的引用。
因为插件的灵活性,必须采用这种方式解决插件之间的依赖(耦合)问题。
这解决插件体系中如何对公共功能进行共享的问题 这里充分利用了.NET反射机制,搜索对象的属性列表,判断服务对象类型,自动进行服务对象定位。 Codon接口定义如下: Interface ICodon { … bool Handl
文档评论(0)