[转]构建可扩展的应用程序

转自:http://www.cppblog.com/mzty/archive/2008/06/06/52381.html

一 构建可扩展的应用程序

什么是可扩展的应用程序?没有标准的定义,一些实例:
Eclipse,Firefox,Office,Ogre, AutoCAD, pro/e, other design software...

二 可扩展应用程序开发过程
   开发过程我们尽量的使我们的软件能够适应变化,能够很容易的增加或修改功能,不可避免的要使用design pattern,当有新的需求进入的时候,原有的架构不能满足要求,这时要refactoring,其实agile software 他强调的就使软件是一个不断的迭代的过程,要跟着用户的需求不对的变化,总之使我们的应用程序有好的framework,好的architecture!

三 Plug-ins插件模式
1) C++ 主要技术:
   LoadLibrary()/GetProcAddress()/FreeLibrary() 
   C++类图如下:

   samples代码下载:http://www.cppblog.com/Files/mzty/Plugins.zip


2)C#主要技术:
      Assembly.Load() / LoadFile() / LoadFrom() (区别:LoadFile只load本dll,LoadFrom会load其他引用到的dll)
      Type.GetInterface() / IsInterface() / GetMethod() / GetProperty() / / …
      Activator.CreateInstance (Type) / Assembly.CreateInstance(String) / Type.GetConstructor().invoke() 
      C#类图如下:

      sample代码下载:http://www.cppblog.com/Files/mzty/Plugins.zip

3)CLI/C++,Managed C++主要目的:(使应用程序可以同时支持NativeC++和net的plugins)


4)总之,经过上面的三步,我们可以实现一个应用程序,可以加载C++和C#的plugins(使用CLI/C++封装),能够动态的加载(C#用Appdomain),能够控制只加载需要的dll(配置文件或C++的dll改为其他的名字)。

四 VBA/VSTA集成环境中开发

VBA和VSTA都是microsoft提过的可以被嵌入的其他的应用程序中的开发工作,VBA是用集成VB的开发IDE,VSTA是集成基于.net的开发IDE。
架构如下图:

其他:http://msdn.microsoft.com/en-us/isv/bb190538.aspx 和 http://www.summsoft.com/

五 支持脚本的集成开发

关于是应用程序支持脚本语言的集成开发,可以查看脚本语言的帮助,一般都有这方面的支持,可以看Python : www.python.org, 比如python嵌入到AutoCAD的开源项目PyACAD,http://pyacad.sourceforge.net/ 。

六 总结
在开发我们自己的应用程序的时候考虑,开放性,可扩展性!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值