从底层设计开始探讨插件式GIS框架的实现

三年前,听当时的师兄推荐,买了蒋波涛的一本关于GIS插件框架的书。当时一边看书一边将其中的例子完整的实现了一遍,收益匪浅。后来由于项目需要,也做过一个插件的C/S系统,用的是微软提供的MEF框架。在这个系统中,把蒋波涛在他的书中没有涉及到的插件和插件的通信完成了。不过,蒋波涛的那本书,涉及到了插件系统的很多底层内容,其中关于插件引擎的设计尤其值得学习。近来,我将自己当年实现的那个例子进行了一个总结,和大家一起分享。

1.插件式框架的组成

(1).框架分为宿主程序和插件对象两部分

(2).两部分交互基于一种公共的通信契约

(3).宿主程序可以独立存在

2.使用插件的原因

(1).可以在无需对程序进行重新编译和发布的条件下扩展程序的功能

(2).可以在不需要程序源代码的环境下为程序增加新的功能

(3).在一个程序的业务逻辑不断发生改变、新的规则频频加入时能够灵活适应

3.插件的一般实现技术

(1).基于动态链接库DLL的插件

(2).基于COM的插件

(3).基于反射技术的插件

时间: 2024-10-02 11:39:40

从底层设计开始探讨插件式GIS框架的实现的相关文章

(1)从底层设计,探讨插件式GIS框架的实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/.   研一时,听当时的师兄推荐,买了蒋波涛的一本关于GIS插件框架的书.当时一边看书一边将其中的例子完整的实现了一遍,收益匪浅.后来由于项目需要,也做过一个插件的C/S系统,用的是微软提供的MEF框架.在这个系统中,把蒋波涛在他的书中没有涉及到的插件和插件的通信完成了.不过,蒋波涛的那本书,涉及到了插件系统的很多底层内容,其中关于插件引擎的设计尤其值得学习.近来,我将自

我的插件式桌面软件框架类库(一)XFrmWork简介

一. 综述 工欲善其事,必先利其器.器可以来自他人,也可以自造.我进实验室的第一个项目便是开发一款行业软件,相比于真正的商业软件,它的系统本身真的很简单.但真是应了那句话,"大学不适合做软件",整个系统交互复杂,设计冗余,维护起来很困难.在项目结题之后,整个系统便存在硬盘里再也没有人问津.虽然我只开发了其中一个模块,但依旧心痛. 痛定思痛,我希望能有一个成熟简单的桌面框架,解决多数桌面开发遇到的问题:界面显示,数据库,插件式架构,调试输出,网络连接等.同时尽可能减少多个开发者之间的耦合

10款非常有效的帮助你设计超酷响应式布局的jQuery插件

如 果你关注最近几年的web设计,那么响应式布局(responsive layout)设计对于你来说肯定不是一个陌生的词汇. 相对于传统的页面设计来说,今天的设计者需要考虑的用户来源和用户体验对于设计者来说是一个非常大的挑战,因为随着硬件的更新,新设备的出现,你需要能够 使得你的网站能够针对不同的设置做出最好显示响应.最初这个名称来自于Ethan Marcotte的文章"Responsive Web Design",设计的理念在于为了有效的利用空间和布局来满足用户阅读过程中产生的不同使

【插件式框架探索系列】应用程序域(AppDomain)

应用程序域(AppDomain)已经不是一个新名词了,只要熟悉.net的都知道它的存在,不过我们还是先一起来重新认识下应用程序域吧,究竟它是何方神圣. 应用程序域 众所周知,进程是代码执行和资源分配的最小单元,每个进程都拥有独立的内存单元,而进程之间又是相互隔离的,自然而然,进程成为了代码执行的安全边界. 一个进程对应一个应用程序是一个普遍的认知,而.net却打破了这一惯例,因为它带来了应用程序域这一全新的概念,CLR可使用应用程序域来提供应用程序之间的隔离,而一个进程中可以运行多个应用程序域,

插件式框架开发的优势劣势

问题描述 插件式开发的优势不用说了,楼主有个工业上位机的小项目基本做得差不多了,和下位机用串口和以太网通信.现在想把两种通信做成主程序的插件(看起来高端也有其他好处)但是众所周知,插件是根据主程序的接口来实现的,我想问下这样可移植性不就低了吗?假如别的部门需要我的串口通信插件,他们的主程序得弄个跟我插件一样的接口先,对吗?另外我们后面想用第三方控件重做UI,UI层能用插件来优化更新吗?就是插件改变UI的意思插件也是继承接口的类库编成dll文件给别人用,那直接写一个类变成dll文件,别人用里面的方

构建插件式的应用程序框架(四)-服务容器

IApplication接口是派生于IServiceContainer接口的.为什么要派生于IServiceContainer呢?我们来看看IServiceContainer的定义,它有几个AddService方法和RemoveService方法以及从IserviceProvider继承过来的GetService方法.Service本身是.NET设计时架构的基础,Service提供设计时对象访问某项功能的方法实现,说起来还真拗口.就我看来,ServiceContainer机制的本质就是解耦合,就

WEBJX收集整理2013年网页设计常用jQuery插件(4)

文章简介:在第四期jQuery插件的分享中,你会发现与以前的略有不同之处,是的.在今天推荐的十个插件中,我们有好几个是中国程序员写的,比如说说zTree写的树形结构效果插件,有SimpleTas插件还有茶哥.小生写的SimpleUI等,而且这回我将正美同学的Mass Framework(这个可不是jQue 在第四期jQuery插件的分享中,你会发现与以前的略有不同之处,是的.在今天推荐的十个插件中,我们有好几个是中国程序员写的,比如说说zTree写的树形结构效果插件,有SimpleTas插件还有

网站制作流程及界面交互设计研究探讨

交互|设计 很多朋友希望,我能把我做网站的一些流程及经验跟大家分享一下,最近刚好做一次内部培训,所以稍微整理了一下,这些只是针对网页初学者,具有一定平面设计水平的人,对HTML不是很了解,他们可能只是想做一个个人主页而已,所以整体还是趋向于传统的表格布局,这里有很多都是一些我个人刚开学时自己摸索的经验,所以可能不是很专业,但是绝对是比较容易入门的,我一直有这种思想,你只有塌进来了,你才可能往更高的地方爬,我想当初如果没有这段的学习,现在我也不会明白什么W3C,什么CSS,什么ASP,什么XML,

“一卡通”信息系统数据库设计初步探讨

设计|数据|数据库|数据库设计                               "一卡通"信息系统数据库设计初步探讨                                      福建开普教育设备有限公司 陈优章         引言:卡的应用不外乎就是计费与身份识别之用.所谓"一卡通"就是同一张卡片,每一用户只需要一张卡,在多种不同功能管理中使用.这是用户对系统的基本要求,也是"一卡通"最主要的表现.一卡,并不是一种固定