NET是COM的替代品吗?

NET是COM的替代品吗?,com,.net,.net-3.5,.net-4.0,Com,.net,.net 3.5,.net 4.0,我想知道.NET和COM的用途 NET与COM有相同的用途吗?因为COM的主要目的是允许语言的互操作性,就像.NET一样 如果是这样的话,为什么许多公司仍然使用COM进行开发项目 当我们可以使用.NET时,学习COM是否值得 com的原因之一是如果你在Borland C++开发工具中开发了一个C++库,你就不能在VB6中使用它。但是你也不能在VC6中使用它(顺便说一句,COM比这些产品要老得多)。因此COM是一种类似C的协议,用于实现应用程序和库之间的互操作性。NET允许托管应用程序之间的互

我想知道.NET和COM的用途

  • NET与COM有相同的用途吗?因为COM的主要目的是允许语言的互操作性,就像.NET一样
  • 如果是这样的话,为什么许多公司仍然使用COM进行开发项目
  • 当我们可以使用.NET时,学习COM是否值得
com的原因之一是如果你在Borland C++开发工具中开发了一个C++库,你就不能在VB6中使用它。但是你也不能在VC6中使用它(顺便说一句,COM比这些产品要老得多)。因此COM是一种类似C的协议,用于实现应用程序和库之间的互操作性。NET允许托管应用程序之间的互操作性。如果你想用C++来交互,请使用C++ +CLI。但是,如果您有一个希望使用.NET组件的遗留COBOL应用程序,您会怎么做?将该组件公开为COM将是一种方法。公开类似C的API是另一种方式

  • 这并不令人惊讶,因为COM从80年代末就已经存在了(我认为)很多商业价值都是建立在COM技术之上的。它没有商业意义,仅仅为了好玩而将工作应用程序重写到.NET成本太高,风险太大。因此,必须维护遗留应用程序的公司自然有很多基于COM的工具和应用程序

  • 这完全取决于你的商业案例。你可以只使用.NET平台吗?我想你不需要了解COM(尽管.NET平台使用COM,有时错误会泄漏)。如果您使用的是操作系统公开的COM库或其他库,那么了解一些基本的COM规则是有意义的

  • 另外,我喜欢COM。我不喜欢注册部分,我不喜欢DCOM,我认为COM公寓最终让人困惑的不仅仅是它对开发人员的帮助(它最初是为了帮助开发人员避免种族条件和相关问题而开发的)。但核心COM相当不错。有些争论是关于“是COM OO吗?”的,但这归结起来就是为什么我们要使用OO?IMO将给出封装。所以问题是:“COM是否提供了良好的封装?”。答案是肯定的(国际海事组织)


    上一次我检查Firefox时使用了一种叫做XPCOM的东西,在我看来它很像COM

    您可能会发现这段Channel9视频很有趣。微软COM/WCF专家朱瓦尔·洛伊(Juval Lowy)表示,对每一个类似于DCOM的a级WCF服务都有意义

    这种联系认为,随着时间的推移,在易用性和易开发性方面会做出妥协。随着这一趋势的继续,对低级COM/DCOM编程的需求减少了。当然,这并不是涵盖所有场景,但它确实涵盖了许多非关键业务需求


    你应该学习COM吗?目前,WCF(以及.NET的其他部分)是基于COM的。了解COM有助于排除那些低级的问题,但除非是你的主要或次要的职业重点,否则我不会花很多时间在它上面。< / P>我用我的老板开玩笑说C++ + com的能力很快就如同COBOL的能力。没有太多的工作,但知道这一点的人更少,所以我们可以自己设定工资,因为这项技术有太多的商业价值。我会看这个,但我下意识的反应是:不,不再!!!让每个类都成为一个COM类在当时似乎是一个很好的想法,但由于开发成本的增加,这真的是一团乱。我还想向用户公开我的所有内部类吗?使用DCOM,网络中充斥着ping。对于Web服务,我认为作为Web服务的接口,它甚至更糟糕,因为您的设计方式与内存中的类不同(Web服务通常使用大块方法来减少调用开销)。此外,Web服务可能会在任何时候消失,inmemory对象不会消失。@FuleSnabel在谈到一些更健谈的绑定时,我并不反对您的一些观点。。。也许有一件事阻止了这个理论成为现实,那就是需要公开所有私有接口。解决这个问题的一种方法是使“Int”类成为WCF服务。如果那样的话,也许你可以保密。此外,您可能希望查看namedpipes绑定以获得更高的效率,但总体上来说,允许使用WCF轻松地进行并行编程,但代价是每个线程的效率。