COM死了吗?

时间:2008-11-18 06:13:29

标签: wcf com components

使用COM在WCF上开发组件时,有什么深刻的优势?有没有什么可以用COM完成而不是用WCF ??

6 个答案:

答案 0 :(得分:8)

不,它还没有死,但它已经死亡,这是肯定的。你看到仍有许多遗留系统使用/需要COM,这可以保证我们可以再与我们合作多年,但不会长期使用。

至于WCF,可能会有一些COM可以做的事情的边缘情况,WCF不能,但更重要的是,与传统的东西有关,就是几乎每种语言都有COM绑定。 Windows堆栈,但WCF绑定尚未为所有人准备(语言)

答案 1 :(得分:7)

取决于您想挖掘的系统深度。 COM永远不会“死”,就像非托管语言一样。

总而言之,如果您为Vista +开发桌面应用程序,您可能不再需要使用COM了。

答案 2 :(得分:4)

我不认为COM已经死了。如果你看一下Vista,它会使用如此多的COM架构/技术。 Vista中的每一件事都是COM Dll / Exe。 我觉得与XP相比,Vista使用了很多COM。

如果我们想扩展Vista中的任何东西,我们必须使用COM实现接口。

答案 3 :(得分:4)

有几个不同的方面:

  1. 将在多台计算机上运行并与之交互的组件(作为服务)
  2. 仅在本地运行的组件,并通过ABI与多个供应商实现的组件进行交互。
  3. 由单个供应商创作而无需与第三方组件交互的组件。
  4. 源代码中可用的多个供应商的组件,可以编译到单个应用程序中。
  5. (ABI =应用程序二进制接口.COM是ABI的一个示例。)

    对于方面1,COM几乎已经死了。

    方面2仍然需要COM,并将继续。 Windows Imaging Component是这种可扩展性的一个很好的例子,允许任何人实现新的图像编解码器。 .Net在这方面是一个强有力的竞争者。

    对于方面3,COM仍然值得考虑,但这是为每个软件供应商做出的决定。内部使用的组件开发人员可能有一天作为产品销售。 .Net似乎也是一个不错的选择。

    对于方面4,人们可以简单地调整和组合来自许多开源项目的源代码。不需要COM或任何ABI。

    不幸的是,作为非托管ABI的COM难以抵御错误,因为代码和数据位于相同的内存空间中,并且堆栈用于数据和执行调用堆栈。一个COM组件中的任何可利用漏洞都可用于导致加载到同一地址空间的任何其他COM组件的不稳定。

答案 4 :(得分:0)

如果我没有弄错的话,.NET旨在取代像COM和WFC这样的技术。有没有理由(遗留代码除外)人们选择COM或WFC而不是.NET?

答案 5 :(得分:0)

相关问题