一种基于工具集的桌面端插件框架及实现方法技术

技术编号:15391289 阅读:254 留言:0更新日期:2017-05-19 04:40
本发明专利技术涉及桌面客户端的工具插件的开发方法,特别是涉及一种基于工具集的桌面端插件框架及实现方法,开发者在该模式下遵循插件开发规范,基于开发环境提供的基础二次开发库,即可快速扩展所需桌面端工具插件,并发布为通用的云服务。本发明专利技术的一种基于工具集的桌面端插件框架,其包括宿主程序模块、第三方界面库模块、插件引擎模块和插件程序集模块,本发明专利技术采用的“框架+插件”的开发模式具有开发简易、低耦合、高复用、高效率、通用性高、易迁移、易聚合等特性,本发明专利技术开发出来的工具插件具有任意纵生、自由聚合、迁移方便、易于重构等特点,全面满足软件开发者对云环境下软件开发的新需求。

Desktop plug-in framework based on tool set and implementation method

The invention relates to a method for developing a desktop client plug-in tool, especially relates to a desktop plug-in framework and implementation method based on the set of tools, developers follow the plug-in standard in this mode, the basic development environment to provide two times the development of Library Based on, can quickly expand the desired desktop plug-in tools, and released for general cloud service. The invention of a desktop plug-in framework based on the set of tools, including the host program module, third party interface library module, plug-in engine module and plug-in assembly module, the invention adopts the framework and plug-in development mode with the development of simple, low coupling, high efficiency, Gao Fu, high universality, easy migration, easy polymerization characteristics, developed the tool of the invention has any plug-in longitudinal health, free polymerization, migration convenient, easy to reconstruct features, fully meet the new demand for software development under the cloud computing software developers.

【技术实现步骤摘要】
一种基于工具集的桌面端插件框架及实现方法
本专利技术涉及桌面客户端的工具插件的开发方法,特别是涉及一种基于工具集的桌面端插件框架及实现方法,开发者在该模式下遵循插件开发规范,基于开发环境提供的基础二次开发库,即可快速扩展所需桌面端工具插件,并发布为通用的云服务。
技术介绍
云计算是虚拟化、效用计算、基础设施即服务、平台即服务、软件即服务等概念混合演进及跃升的结果,云计算时代是必然趋势,“云服务”作为一种新兴的共享基础架构的方法已经越来越广泛的应用于信息领域。云计算技术将连接到互联网的PC、数据库、服务器、甚至包括昂贵的科学仪器连接到一起,并将空闲计算能力、存储空间等利用起来。用户通过互联网访问云计算平台获得需要的信息服务,而不必考虑提供这些信息服务的具体的硬件设施、操作系统等支持环境,从而实现了广泛的多源异构信息资源的充分共享。随着云计算理念的提出及深化,软件应用终端向着微型化、移动化方向发展,同时服务器端向着基于跨平台的、面向服务的产品体系及架构并支持小型机、大型机、集群等应用的巨型化方向发展。传统的软件开发模式偏向于定制开发,功能设计与应用对象一一对应。开发的应用只为满足某一特定对象的使用,不具备通用性,耦合性很强。功能之间并未相互独立,代码冗余,复用率也不高。对当新应用与旧应用有一定的相似度时,最常采用的方法就是基于已有应用进行修改,或者直接将代码拷贝、调试、修改,由此带来了应用工程越来越大、Bug越来越多、软件开发效率极度低下,开发出的软件往往存在很多不可预见的问题。因此,在传统软件开发应用中,体现了传统开发模式下存在开发复杂、耦合性强、复用性差、成本高、效率低等问题。
技术实现思路
为解决上述问题,本专利技术提供了一种基于工具集的桌面端插件框架及实现方法,本专利技术采用的“框架+插件”的开发模式具有开发简易、低耦合、高复用、高效率等特性。为实现以上专利技术目的,本专利技术一种基于工具集的桌面端插件框架,其不同之处在于:其包括以下模块:宿主程序模块:宿主程序是整个插件开发框架运行的入口,它通过插件引擎加载插件对象,并将插件对象以用户界面(UI)的形式来展示,以及负责协调这些插件对象与界面控件间的交互;第三方界面库模块(Dxp):第三方界面库提供界面控件对象,被宿主程序调用来实现与插件对象间的交互;插件引擎模块:插件引擎负责解析插件程序集,提取插件程序集中的插件类型信息,并提交给宿主程序生成对应的界面对象;插件引擎提供一种通讯契约,即插件接口;插件程序集如果实现了上述插件接口,就能被插件引擎认可为合格的插件;插件引擎提供一个插件容器(PluginContainer),负责管理插件的加载、卸载状态控制;插件引擎提供一个运行框架(Application),负责管理插件引擎运行状态、与插件程序集间的交互以及与地图数据(MapDocument)交互。所述插件容器(PluginContainer)通过从插件程序集(Plugin….dll)中获取插件对象,分别装入对应的插件容器(PluginContainer)中,实现插件的加载;从插件容器(PluginContainer)中删除插件对象,实现插件的卸载;插件程序集模块:实现了插件引擎定义的插件契约的应用程序集,是基于.NET框架的应用功能的主体实现。以上方案中,所述宿主程序模块负责了界面的解析、加载、运行、保存过程,其启动过程必须满足用户的配置性和嵌入性需求,宿主程序的启动、关闭过程大概分为如下几个步骤:步骤301:加载内部Application.xml文件,根据XML初始化系统属性,并且加载欢迎屏(如果存在欢迎屏则加载,否则不加载);步骤302:判断是否存在配置文件(exe.config文件),如果不存在,则将Application.xml的内容赋值给新文档RealDoc,否则将配置文件exe.config的内容赋值给新文档RealDoc;步骤303:根据新文档来修订系统属性、创建插件对象、创建界面、发送事件;步骤304:宿主程序启动完成(如果前面加载了欢迎屏,关闭欢迎屏);步骤305:宿主程序关闭,宿主程序需要保存用户界面以备下次启动应用程序,它将会保存用户当前的所有设置,待下次启动时则根据配置文件初始化为上次保存的界面。上述方案中,插件的加载包括以下步骤:步骤501:插件容器(PluginContainer)加载插件程序集(Plugin….dll)。若之前未加载插件,则将插件程序集(Plugin….dll)插入到插件程序集列表末尾;步骤502:插件容器(PluginContainer)创建所有实现了IPlugin接口的对象,并将每个对象添加到相应的插件词典中;步骤503:宿主程序(Apploader.exe)处理PluginAdded事件来创建界面并发送PluginLoadedEvent事件。上述方案中,所述插件的卸载包括以下步骤:步骤601:插件容器(PluginContainer)卸载插件程序集(Plugin….dll),若插件未卸载,则将插件程序集(Plugin….dll)从插件程序集列表中移除;步骤602:删除插件容器(PluginContainer)中所有实现了IPlugin接口的对象,并将每个对象从相应的插件词典中移除;步骤603:宿主程序处理PluginRemoved事件来删除界面并发送PluginUnLoadedEvent事件。一种基于工具集的桌面端插件框架的实现方法,其包括以下步骤:步骤1):配置开发环境。将开发所需的集成开发环境、开发者授权许可文件、开发框架文件等下载到PC端,实现一键部署;步骤2):开发/调试:在遵循插件契约的前提下,用户按照接口说明在配置好的开发环境中调用已有的插件,实现插件接口,并按照用户的个性需求编写相应的代码完成整个插件的开发,生成一个合格的插件;步骤3):测试:开发者进行插件测试并按照进行测试结果的填写,插件测试通过后进入下一步骤;步骤4):发布:测试通过的插件,发布在插件程序集中,供插件容器加载、运行;步骤5):提交:插件引擎提取插件程序集中的插件类型信息,并提交给宿主程序生成对应的界面对象。对比现有技术,本专利技术的有益特点如下:本专利技术采用的“框架+插件”的开发模式具有开发简易、低耦合、高复用、高效率、通用性高、易迁移、易聚合等特性。本专利技术开发出来的工具插件具有任意纵生、自由聚合、迁移方便、易于重构等特点,全面满足软件开发者对云环境下软件开发的新需求。附图说明图1为基于工具集的桌面端插件开发模式;图2为桌面端插件的开发中间件示意图;图3为桌面端插件的开发步骤图图4为宿主程序启动、关闭的流程图;图5为插件的动态加载实现原理;图6为插件的加载步骤;图7为插件的卸载步骤,插件的卸载与加载相反;图8为插件运行框架。具体实施方式下面通过具体实施方式结合附图对本专利技术作进一步详细说明。工具框架又称插件框架等,读者可以简单理解为在开发GIS桌面应用时,MapGIS已从一开始就为开发者准备好了这一框架,剩下的工作即是基于预置的工具插件往该框架里添加插件即可,即“框架+插件”开发模式。工具插件,是一种基于.NETFramework框架,并遵循目标框架通讯契约(纯接口定义)的应用程序集,其在操作系统里表现为“.dll文件”。工具集是一本文档来自技高网
...
一种基于工具集的桌面端插件框架及实现方法

【技术保护点】
一种基于工具集的桌面端插件框架,其不同之处在于:其包括以下模块:宿主程序模块:宿主程序是整个插件开发框架运行的入口,它通过插件引擎加载插件对象,并将插件对象以用户界面(UI)的形式来展示,以及负责协调这些插件对象与界面控件间的交互;第三方界面库模块(Dxp):第三方界面库提供界面控件对象,被宿主程序调用来实现与插件对象间的交互;插件引擎模块:插件引擎负责解析插件程序集,提取插件程序集中的插件类型信息,并提交给宿主程序生成对应的界面对象;插件引擎提供一种通讯契约,即插件接口;插件程序集如果实现了上述插件接口,就能被插件引擎认可为合格的插件;插件引擎提供一个插件容器(PluginContainer),负责管理插件的加载、卸载状态控制;插件引擎提供一个运行框架(Application),负责管理插件引擎运行状态、与插件程序集间的交互以及与地图数据(MapDocument)交互,所述插件容器(PluginContainer)通过从插件程序集(Plugin….dll)中获取插件对象,分别装入对应的插件容器(PluginContainer)中,实现插件的加载;从插件容器(PluginContainer)中删除插件对象,实现插件的卸载;插件程序集模块:实现了插件引擎定义的插件契约的应用程序集,是基于.NET框架的应用功能的主体实现。...

【技术特征摘要】
1.一种基于工具集的桌面端插件框架,其不同之处在于:其包括以下模块:宿主程序模块:宿主程序是整个插件开发框架运行的入口,它通过插件引擎加载插件对象,并将插件对象以用户界面(UI)的形式来展示,以及负责协调这些插件对象与界面控件间的交互;第三方界面库模块(Dxp):第三方界面库提供界面控件对象,被宿主程序调用来实现与插件对象间的交互;插件引擎模块:插件引擎负责解析插件程序集,提取插件程序集中的插件类型信息,并提交给宿主程序生成对应的界面对象;插件引擎提供一种通讯契约,即插件接口;插件程序集如果实现了上述插件接口,就能被插件引擎认可为合格的插件;插件引擎提供一个插件容器(PluginContainer),负责管理插件的加载、卸载状态控制;插件引擎提供一个运行框架(Application),负责管理插件引擎运行状态、与插件程序集间的交互以及与地图数据(MapDocument)交互,所述插件容器(PluginContainer)通过从插件程序集(Plugin….dll)中获取插件对象,分别装入对应的插件容器(PluginContainer)中,实现插件的加载;从插件容器(PluginContainer)中删除插件对象,实现插件的卸载;插件程序集模块:实现了插件引擎定义的插件契约的应用程序集,是基于.NET框架的应用功能的主体实现。2.根据权利要求1所述的一种基于工具集的桌面端插件框架,其中所述宿主程序模块负责了界面的解析、加载、运行、保存过程,其启动过程必须满足用户的配置性和嵌入性需求,宿主程序的启动、关闭过程大概分为如下几个步骤:步骤301:加载内部Application.xml文件,根据XML初始化系统属性,并且加载欢迎屏(如果存在欢迎屏则加载,否则不加载);步骤302:判断是否存在配置文件(exe.config文件),如果不存在,则将Application.xml的内容赋值给新文档RealDoc,否则将配置文件exe.config的内容赋值给新文档RealDoc;步骤303:根据新文档来修订系统属性、创建插件对象、创建界面、发送事件;步骤304:宿主程序启动完成(如果前面加载了欢迎屏,关...

【专利技术属性】
技术研发人员:吴信才万波吴亮郭明强黄波叶亚琴余国宏尹培培
申请(专利权)人:武汉中地数码科技有限公司北京中地时空数码科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1