c#arcgis engine开发_快速开发平台——微内核插件化框架构建

引言

接着上篇整个平台的介绍,本篇想跟大家分享一下整个平台的基础层,微内核插件化框架的构建。插件架构体系的发展由来已久,很多大型软件也都或多或少的融入了插件的体系架构,随着人们对插件技术研究工作的深入,涌现了一些具有代表性的插件框架,例如VS Code插件框架、OSGi等等。OSGi框架是运行在JavaVM环境里的服务平台,实现了一个优雅、完整和动态的组件模型,使用Java语言开发的人可以借鉴。VS Code是基于 Electron+Chromium进行开发的,使得开发者可以使用 HTML, CSS 和 JavaScript 等前端技术来开发跨平台桌面 GUI 应用程序,前端技术比较熟悉想从事桌面端开发的人可以去研究一下。从事自然资源数据处理方面,大部分人熟悉的可能是c++、c#,基于这方面考虑,本平台的集成框架考虑用C#进行构建,这样不管是C++的应用还是C#的应用,都可以较好的进行集成。

简介

平台在逻辑上分为六层,微内核插件化框架位于核心层,是整个平台运行的基础,主要包括平台的框架组件——插件,负责整个插件扩展功能项的管理;平台的服务组件——服务工厂,实现对整个平台的信息服务,包括功能的调用、消息注册、日志管理等;平台的界面框架——工作台框架,通过用户的定义,利用插件仓库中的插件,完成对工作台的组装;平台的插件仓库管理器——插件管理,负责整个平台插件仓库的管理,包括插件的安装、部署,以及插件依赖项的管理等。系统功能仓库作为整个平台的知识库,以插件的形式由核心层的插件管理器进行管理,其内容可以由用户或开发人员进行不断扩充及完善,从而实现对业务信息化的支撑。

6ac83ea6ffe6f6005f1797158b4f049b.png

插件框架结构

框架使用

框架使用过程分两步,首先继承框架接口编写插件代码,可以继承的接口包括系统菜单、工具栏、视图窗口、文档窗口等等,插件功能编写完成后,在插件配置文件中配置插件显示的位置、名称及图标等信息,并放到相应目录下,即可自动进行加载。

//功能菜单接口,可以配置成菜单栏或工具栏public class DataConvertCommand : AbstractCommand{        public override void Run()        {                 //业务逻辑代码编写         }}//插件配置,包括菜单名称、图标等,通过路径可以控制插件的嵌套关系
//视图窗口定制,集成arcgis图层控制器,视图文档窗口类似 public class CommonMapLegend : AbstractPad { Panel arcMapTocPanel = new Panel(); public override System.Windows.Forms.Control Control { get { return arcMapTocPanel; } } public CommonMapLegend() { arcMapTocControl = new Legend(); arcMapTocPanel.Controls.Add(arcMapTocControl); } }//视图插件配置,

插件加载后效果如下图所示,通过丰富的定制接口,可以集成所有支持二次开发的第三方软件平台,包括mapgis、arcgis、cad等,同时支持多文档视图、多视图窗口及工具菜单,因此需要用到哪个平台,只需把哪个平台的插件放到插件目录下就可以使用了,为后期项目的快速定制开发可以大大的提高效率,同时避免重复造轮子。

f7ae30ab9d4641a045a10ddb53a10415.png

视图及工具栏加载后效果

本篇暂时介绍到这里,欢迎大家进行讨论交流,私信或QQ:3022257867

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值