C插件式程序开发探析.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Jene Marlin jenemarlin@ 2010-8-2;提起插件式程序,我们首先想起的就是firbox.用过firebox浏览器的人都知道它是一个插件式程序。当一个功能需要时,完全可以从网上下载一个插件后,重启后,就能使用。这个功能给我们带来了许多的方便之处。这就是插件式程序带来的好处。 插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。(先谢谢网络共享的朋友 ?)。 平台+插件软件结构是将一个待开发的目标软件分为两部分, 一部分为程序的主体或主框架,可定义为平台,这是预先编译后的程序 。 另一部分为功能扩展或补充模块,可定义为插件。 这个就是后来要进行安装的插件程序。 ;?假设你设计的程??已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。 可以这么说,用它可以带来方便的地方 。而且开发它,也很简单。而且这样做主程序根本 就不需要改动。需要插件时,拿来就能用。插件更新,也只要更新这个插件就行。 从程序开发角度来说,一般都是先要开发主程序,决定那些功能由主程序来完成,然后再建立接口,声明接口的内容,这些内容决定着插件的扩展的功能,及方向的。这些都是由主程序开发者预先准备好的。 插件开发者,从主程序开发者那里得到接口的内容,并书写继承这些接口的类,来完成具体的功能。 一个程序能实现的功能,基本上插件都能实现。;本节,我将通过一个最简单的实例来说明插件式程序的开发。希望能快速的带领刚学习插件式程序开发的朋友们快速的学习及进步。 本例主要介绍插件式程序的开发过程。 这个插件式程序的功能。 在主程序加载时,自动的加载插件中功能,并能完成接口中定义的功能 。 这个例子也是最简单的插件程序,说实话,没有什么意义,但是我写出来,主要就是介绍这个插件式程序开发的思想 。这对一个想学习插件式程序开发朋友会有一定的帮助。;插件;为什么生成DLL文件? 只有生成 DLL文件后,才能被主程序及插件程序引用。 怎样生成DLL文件? 生成接口的DLL文件,同生成类的DLL文件一样。 在VS中,打开[新建项目]—[类库],输入文件名后,保存即可, 在做完接口的声明后,右键单击[解决方案资源管理器],再次单击生成即可。 using System; using System.Collections.Generic; using System.Text; namespace pluginsinterface { public interface inter { string show(); void a(); } } ;为什么先开发主程序? 我们都知道,先有主程序,后才有插件。 主程序的开发原理是什么 ? 先要建立一个文件夹,在这个文件夹内放入插件,当主程序需要加载插件,就从这个文件夹内加载插件程序。 在这里,我们要用到System. Reflection这个命明空间。并利用它下面的Assembly类。并在解决方案管理器中,添加接口dll的引用。还要在命名空明处添加空间的引用。 下面贴出一个简单的插件管理的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using pluginsinterface; using System.Reflection; ; namespace myapp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string path = @C:\Documents and S

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档