摘要: 前天发了构建插件式的应用程序框架(五)----管理插件这篇文章,有几个朋友在回复中希望了解插件之间是如何通讯的。这个系列的文章写到这里,也该谈谈这个问题了,毕竟已经有了插件管理。不知道大家有没有注意到我在第四篇文章里谈到的服务容器(Service Container),Service是我所提到的插件式的应用程序框架的基础,我们也可以回头看看IApplication的接口定义,IApplicatio... 阅读全文
posted @ 2007-03-14 22:43 纶巾客 阅读(9681) 评论(18) 推荐(2) 编辑
摘要: 构建插件式的应用程序框架(一)----开篇 构建插件式的应用程序框架(二)----订立契约 构建插件式的应用程序框架(三)----动态加载 构建插件式的应用程序框架(四)----服务容器 构建插件式的应用程序框架(五)----管理插件 构建插件式的应用程序框架(六)----通讯机制构建插件式的应用程序框架(七)----基本服务构建插件式的应用程序框架(八)----视图服务的简单实现 阅读全文
posted @ 2007-03-14 21:36 纶巾客 阅读(13071) 评论(13) 推荐(4) 编辑
摘要: 把这个系列的文章整理出来,方便大家阅读。 阅读全文
posted @ 2007-03-14 21:32 纶巾客 阅读(14978) 评论(11) 推荐(12) 编辑
摘要: 我们现在已经搭建了插件式的应用程序框架,接下来的工作就是要充实框架的内容,提供基本的服务,也就是Service。我想首要的任务就是提供插件的管理服务,我在前面的文章也提到了,要实现动态加载必须要知道插件寄宿在哪里,哪些要加载,哪些不加载,这些就是这篇文章要讨论的问题。 首先解决的就是插件放在什么地方,我采取的传统的方法,将插件放到应用程序所在目录下的制定目录,我会在应用程序所在的目录下创建一个文件... 阅读全文
posted @ 2007-03-12 22:55 纶巾客 阅读(13728) 评论(17) 推荐(4) 编辑
摘要: 在构建插件式的应用程序框架(二)----订立契约一文中,可以看到我们的IApplication接口是派生于IServiceContainer接口的。为什么要派生于IServiceContainer呢?我们来看看IServiceContainer的定义,它有几个AddService方法和RemoveService方法以及从IserviceProvider继承过来的GetService方法。Servi... 阅读全文
posted @ 2007-02-26 22:31 纶巾客 阅读(16442) 评论(10) 推荐(3) 编辑
摘要: 不管你采用什么方式实现插件式的应用程序框架,核心还是动态加载,换句话说,没有动态加载技术也就无所谓插件式的应用程序框架了。使用Com实现的话,你可以利用Com的API通过ProgID来动态创建COM对象,如果使用普通DLL,你需要使用Windows 的API函数LoadLibrary来动态加载DLL,并用GetProcAddress函数来获取函数的地址。而使用.NET技术的话,你需要使用Assem... 阅读全文
posted @ 2007-02-25 23:52 纶巾客 阅读(18730) 评论(14) 推荐(1) 编辑
摘要: 无论是用COM的方式,还是普通DLL,抑或.NET方式来实现插件框架,首先要面临的问题就是如何订立契约。如同我上一篇文章讲到的一样,契约是应用程序和插件之间进行交互的依据和凭证。应用程序必须声明我有什么样的功能可被插件使用,并且插件必须符合什么条件才能被我使用。反之,插件必须要知道应用程序提供什么样的功能,我才能将自己的功能融入到应用程序的体系中。本系列文章主要讲如何使用.NET实现插件式的应用程... 阅读全文
posted @ 2007-02-14 23:07 纶巾客 阅读(19482) 评论(16) 推荐(3) 编辑
摘要: 说起插件(plug-in)式的应用程序大家应该不陌生吧,记得很早以前有一款很流行的MP3播放软件winmap,它是我记忆里最早认识的一款使用插件模式的应用程序,你可以使用他的插件管理器插入很多的音乐效果器,皮肤,甚至是歌词显示的面板。接下来看到了Photoshop使用插件模式管理虑镜。最后发现只要是大一点的应用程序基本都使用了插件式的程序框架,就拿我们最常用的工具来说吧,Visual ... 阅读全文
posted @ 2007-02-13 22:48 纶巾客 阅读(22242) 评论(14) 推荐(7) 编辑
摘要: 前面的一些文章绝大部分都是要讲控件的设计时的行为,既然涉及到这么多的设计时行为的代码编写,那么就有必要就一下如何来调试控件的设计行为。 调试控件的设计时行为和调试DLL的方式非常的相似,因为DLL是不能够单独运行的,而一般的控件也会在一个DLL里。当然如果你不考虑类的可复用性而把控件写在一个Windows Application里面也无可厚非,这样调试倒也变的简单了。但是我... 阅读全文
posted @ 2007-01-23 20:49 纶巾客 阅读(10621) 评论(11) 推荐(3) 编辑
摘要: 在前些日子里,我写了有十篇关于WinForm 控件的制作教程,在这些教程里使用的例子都十分的简单,并且示例的控件基本没有什么用,是该写一个简单实用的控件的时候了。今天我就来制作一个VS风格的ToolBox工具箱。VS风格的ToolBox和QQ的界面很相似,都是有多个栏目,并且这些栏目可以展开和折叠,当鼠标在某个子栏目上时,可以高亮显示,另外在VS风格的ToolBox中,点击选中项目的... 阅读全文
posted @ 2007-01-10 21:23 纶巾客 阅读(12296) 评论(18) 推荐(1) 编辑