繁体   English   中英

.NET替代COM吗?

[英]Is .NET replacement for COM?

我想知道.NET和COM的目的,

  • .NET与COM的目的是否相同? 因为COM的主要目的是允许.NET的语言互操作性?
  • 如果是这样的话为什么许多公司仍在使用COM进行开发项目?
  • 当我们可以使用.NET时,是否值得学习COM?
  1. COM的一个原因是,如果您在Borland C ++构建器中开发了C ++库,则无法在VB6中使用它。 但你也不能在VC6中使用它(COM比这些产品更老了)。 所以COM是一个C类协议,用于应用程序和库之间的互操作性。 .NET允许托管应用程序之间的互操作性。 如果要与C ++互操作,请使用C ++ / CLI。 但是如果你有一个希望使用.NET组件的传统COBOL应用程序,你会怎么做? 将该组件公开为COM将是一种接近它的方法。 暴露类似API的API是另一种方式。

  2. 自从80年代末以来COM一直存在以来(我认为)很多商业价值都建立在COM技术之上,这并不令人惊讶。 它没有任何商业意义,并且将工作应用程序重写为.NET只是为了它的乐趣而且成本太高且风险太大。 因此,必须维护遗留应用程序的公司自然会拥有大量基于COM的工具和应用程序。

  3. 这一切都取决于您的业务案例。 你能不能只使用.NET平台我猜你不需要知道COM(虽然.NET由.NET平台使用,有时会出现错误泄漏)。 如果您正在使用操作系统或其他库公开的COM库,那么了解一些基本的COM规则是有意义的。

PS。 我喜欢COM。 我不喜欢注册部分,我不喜欢DCOM,我认为最终COM公寓比帮助开发人员更困惑(它最初是为帮助开发人员避免竞争条件和相关问题而开发的)。 但核心COM相当不错。 一些争吵已经结束“是COM OO吗?” 但归结为我们为什么要使用OO? IMO给予封装。 那么问题是:“COM是否提供了良好的封装?”。 答案是肯定的(IMO)。

PS。 最后我检查了Firefox使用了一个名为XPCOM的东西,看起来很像我的COM。

你可能会发现这个Channel9视频很有趣。 微软COM / WCF专家Juval Lowy说,可能每个类都有一个WCF服务,类似于DCOM

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Every-Class-a-WCF-Service-with-Juval-Lowy/

该链接认为,在易用性和易于开发的性能方面做出了妥协。 随着这种趋势的继续,降低了对低级COM / DCOM编程的需求。 当然,这并不涵盖所有情况,但它确实涵盖了许多非关键业务需求。

你应该学习COM吗? 就目前而言,WCF(以及.NET的其他部分)基于COM。 了解COM将有助于解决那些突然出现的低级别问题,但除非是您的主要或次要职业重点,否则我不会花费大量时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM