组件编程

面向过程的编程重用函数、面向对象的编程重用类、范型编程重用的是算法的源代码,而组件编程则重用特定功能完整的程序模块。

 

每个组件会提供一些标准且简单的应用接口,允许使用者设置和调整参数和属性。用户可以将不同来源的多个组件有机地结合在一起,快速构成一个符合实际需要(而且价格相对低廉)的复杂(大型)应用程序。

 

组件区别于一般软件的主要特点,是其重用性(公用/通用)、可定制性(设置参数和属性)、自包容性(模块相对独立,功能相对完整)和互操作性(多个组件可协同工作)。可以简单方便地利用可视化工具来实现组件的集成,也是组件技术一个重要优点。

 

普通的面向过程和面向对象的编程,一般会生成两种类型的软件——针对特定应用的可执行程序和面向通用编程的API库。前者包含你需要的各种特殊的具体功能,但必须从头到尾自己来创建,其中很多是低层次的重复劳动;后者虽然通用,但是却不能满足你的具体应用的特殊需要。

 

组件技术提供了第三种途径,它将库的可重用性与特定程序的可定制性结合起来,让用户可以用可重用的组件来定制自己特定的应用程序。所以组件在某些方面类似于“可执行程序”,在另一些方面又类似于“库”。

 

采用MFC编程,可选的项目类型为:MFC应用程序、MFC DLLMFC ActiveX控件,刚好对应于上面所讨论的可执行程序、库和组件这三类软件。

使用组件来构造应用程序的工作(组件集成)非常简单,不需要专业程序员,普通用户就可以很快做到。但是设计和创建组件(组件编写)的工作却十分复杂,只有高水平的程序员才有可能完成。这也是为什么VBDelphi会如此流行的真正理由(组件功能强大,编写又非常简单),同样也是ATLEJB等(创建组件)编程少有人问津的原因。

 

 

 

COMComponent Object Model,组件对象模型)是微软公司于1993年提出的一种组件技术,是软件对象组件之间相互通信的一种方式和规范,它是一种平台无关、语言中立、位置透明、支持网络的中间件技术。

COMOLEObject Linking and Embedding,对象链接和嵌入)的发展(而OLE又是DLL [Dynamic Link Libraries,动态链接库]的发展),DCOMDistributed COM分布式COM1996年)和COM+DCOM+管理,1999年)则是COM的发展。ActiveX控件是COM的具体应用(如VBXDirectX都是基于ActiveX的)。ATLActive Template Library活动模板库)是开发COM的主要工具,也可以用MFC来直接开发COM,但是非常复杂。

作为组件技术的进一步发展,微软公司又于2002年推出了.NET框架,其中的核心技术就是用来代替COM组件功能的CLRCommon Language Runtime公共语言运行库),可采用各种编程语言,利用托管代码来访问(例如C#VBMC++),使用的是.NET的框架类库FCLFramework Class Library

微软公司的各种组件技术之间的关系与发展可以参见下图:

 

ATL / MFC                            FCL / C#VBMC++C++/CLI

↓开发                                  ↓开发

1981   1991    1993     1996      1999     2002

DLL—→OLE—→COM—→DCOM—→COM+—→.NET—→……

↓应用  ↓应用                                   ↓应用

VBX—→ActiveX—→DirectX       ASP.NET/ADO.NET/ Web服务

替换         应用                  分布式计算

 


 

本地                              网络                         Web

 

微软组件技术之间的关系与发展示意图

 

 

 

阅读更多
个人分类: C/C++
想对作者说点什么? 我来说一句

组件编程系列组件编程系列

2009年12月04日 897KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭