文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发软件工程COM, COM+ and .NET 的区别
精品推荐
特别推荐
·Tomcat中用web.xml控制Web应用详解
·计算机网络工程课程讲解
·COM, COM+ and .NET 的区别
·ISO9000:2000 质量管理八大原则(1)
·Struts框架及其在Web开发中的应用
·献给汇编初学者-函数调用堆栈变化分析
·质量管理的十三项步骤和八项原则(1)
·质量管理体系审核全解(1)
·WinCE.Net平台下电力巡检仪数据同步研究与实现
·黑盒测试和白盒测试
·黑客程序设计
·软件自动化测试流程
·详述RPG游戏引擎的设计原理
热点TOP10
·Visual Studio 2005集成开发环境图解
·Linux BOOTLOADER全程详解(Arm S3C2410)
·清除window 2000/XP系统中的无用设备的驱动程序
·gsoap中文文档(8.1.1)
·如何为嵌入式开发建立交叉编译环境
·ISO9000:2000 质量管理八大原则
·Vista新技术:WCF开发指南之构建服务
·UML类图详解(1)
·ISO9000:2000 质量管理八大原则(1)
·商场荧屏导购展板系统软件需求说明书
·Tomcat中用web.xml控制Web应用详解
·使用ADS1.2进行嵌入式软件开发
·VC中利用多线程技术实现线程之间的通信
·编写质量手册
·软件工程-软件目的需求开发与管理
·软件项目质量管理经验谈
·.NET 数据访问架构指南
·献给汇编初学者-函数调用堆栈变化分析
·软件与并发巨变 不得不面对的革命
·管理信息系统需求调研分析指南

COM, COM+ and .NET 的区别

日期:2007年6月28日 作者: 查看:[大字体 中字体 小字体]


所有的优秀程序员都会尽自己的最大努力去使自己所写的程序具有更好的可重用性,因为它可以让你快速地写出更加健壮和可升级性的程序。

  有两种使代码重用的选择:

  1.白盒:最简单的一种,就是把你的程序片拷贝到另一个文件中。
  2.黑盒:它包括把编译过的程序片连接起来。因此客户端可以调用的编译过的黑盒类库就叫作组件。

  .Net中也同样为开发者提供了类似于COM的建立和展开组件的方法。开发人员很容易地被这两种以组件为基础的开发模型所迷惑,所以,让我们来看一看这些不同的开发方法,以使我们消除疑惑。

  COM的产生

  在以前程序设计过程中,程序员把它们的函数库放在一个叫做目标(Object)文件的单独文件中,在这些文件中,包含了编译过的代码。当程序员要使用一个特别的目标文件的时候,他们把客户程序编译成机器代码,然后依靠动态链接的手段把客户程序联接到目标文件上,最后变成一个单一的可执行文件。这种作法的唯一的好处在于它节省了编译函数库的时间。但是它有许多的缺点,比如由于在每个单独的可执行文件中都有一个程序库包括在里面,浪费了许多存储空间;对应用程序的维护也是非常困难的,如果在函数库中发现了一个bug,整个可执行文件都要被重新编译和分发。

  还有不只一个的严重的限制在里头,一个客户应用程序必须要和用同一种语言编制的函数库在一起才能使用。比如说,一个用QuickBasic写的客户应用程序就不能引用一个用C++写的函数库。

  因此,微软公司出品了COM,COM仅仅只是一个规范。不管组件用什么语言写成,只要符合这个COM规范,就能被用任何一种语言写成的客户程序调用。此外,程序员不必再担心要去建立一个单一的可执行文件,因为组件是以GUID(Global Unique Identifier全球唯一标识符)来标识的。GUID是一个128位的号码,和一些相关的信息一起被放在系统的注册表中,用来唯一标识组件。客户应用程序只在运行期间才动态地建立一个组件的实例,并使用这个组件的功能,因此,只需要一个函数库的拷贝。它的缺点就是大家常常提到?quot;DLL地狱"。这个问题在一个DLL要被一个新版本的DLL所取代时引发。开发者不得不通过关闭所有的客户应用程序的方法(如果不行,还要关闭WWW服务)来达到清除所用对这个组件的引用的目的。有时所有的方法都还起不了作用,那你只好重新启动服务器后才能替换掉老的DLL。

  COM+

  为了让企业级的应用程序能使用上COM,它必需要有以下的特定的能力。

  · 验证能力
  · 对象池(Object Pooling)
  · 事务处理
  · 支持分布式架构

  为了使开发者不必去为他们的组件添加这些能力,微软公司出品了DCOM(Distributed COM分布式COM)和MTS(Microsoft Transaction Server微软事务服务器)。使用这两种技术,开发者就可以把精力用在他们的商业逻辑上,而不必放在后台的他们的组件上。

  DCOM是一个用于分布式的组件之间的通讯的RPC(Remote Procedure Call)协议。客户端向一个本地机的代理类发送请求,然后由代理类将这个请求隐含地给安装在远程机器上的"根"类,然后执行结果原路送回给代理类,最后代理类把它们回送给客户端。因此,客户程序的位置完全与组件的位置无关。DCOM的缺点在于,由于DCOM使用的是一个独立的硬件端口,而不是HTTP协议的80端口,所以在组件间通讯的过程中,必须保证这个端口是开着的。这是一个严重的安全问题。所以DCOM不能够轻易地穿越防火墙。

  为了使用MTS,程序员在它们的组件里放置特别的MTS钩子,编译后把他们放在MTS包中。把有关系的组件放在一个单一的包中有它自己的好处。当客户请求一个包中的一个组件的一个实例的时候,MTS确保为这个包建立一个新的专门的线程,一个新的组件实例被建立在这个线程上并被应用事务服务。至于对象池服务和安全服务是否要被建立,那就要看开发者的请求了。

  MTS允许相关的作业单元被当作一个事务来对待,这意味着如果所有的作业单元被成功地完成,整个事务就被当作成功地完成,反之如果有一个单元未成功完成,整个事务将被重新轮回。

  在客户请求对象和释放对象后,MTS仍保存着这个对象,所以当另一个客户请求同一个组件的时候,MTS就将保存着的对象交给它。通过这种方式,MTS减少了在服务器源实例化的次数。

  MTS允许开发者用安全措施来组装他们的组件,以使其具有识别请求它的服务的客户的能力。这能够确保未经授权的客户不能够使用组件的功能。

  MTS以COM+的名义被完整地整合到了微软公司的Windows 2000操作系统中,但是COM+不仅仅只有MTS,它还包括一些其它的服务。MSMQ(Microsoft Message Queue Server),一个与MTS一同发布的服务,也被以COM+的名义整合到了Windows 2000中。MSMQ允许服务器端和客户端进行同步的通讯。事件服务(Event Service)也被加了进来,它使服务器能够与客户端同步地交流事件的发生。负载平衡服务(Load Balancing)自动地实例化机器上的具有最多资源的服务器上的请求对象。

[1] [2] 下一页 




上一篇:基于Web的系统测试方法

下一篇:J2EE项目中开发团队的组建

COM, COM+ and .NET 的区别 相关文章:
·绝对意想不到 廉价板与高价板的区别
·交换机和路由器的区别
·IDE与ATA区别
·HTML 和 XHTML 区别
·第一次和第一百次的区别
·COM, COM+ and .NET 的区别
·DVD-R和DVD+R的区别
·HTML和XHTML的区别
·JSP中include指令和include行为的区别
·Varchar与char的区别
COM, COM+ and .NET 的区别 相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn