【发布时间】:2010-12-23 06:24:45
【问题描述】:
似乎对 DCOM 有很多敌意,我很想知道为什么。对于一家仍在使用 C++ 编写 Win32 SKD 的公司,是否有任何真正的理由不在当前或未来的开发中使用 DCOM?某些未来版本的 Windows 将不支持它吗?是不是太脆弱,不能经常工作?与其他技术相比,实施起来是否过于复杂?有什么关系?
【问题讨论】:
-
一切 ;)(开个玩笑)
标签: dcom
似乎对 DCOM 有很多敌意,我很想知道为什么。对于一家仍在使用 C++ 编写 Win32 SKD 的公司,是否有任何真正的理由不在当前或未来的开发中使用 DCOM?某些未来版本的 Windows 将不支持它吗?是不是太脆弱,不能经常工作?与其他技术相比,实施起来是否过于复杂?有什么关系?
【问题讨论】:
标签: dcom
如果你只想用 C++ 开发并部署在受控网络中,它可能仍然是一个不错的选择。
【讨论】:
我不喜欢 COM/DCOM,因为"Catastrophic failure" 是错误消息历史上最无用的错误消息。
【讨论】:
嗯,DCOM 是 COM 的分布式版本,COM 本身非常复杂,很容易无意中做错事(参见this recent question 及其答案示例)。使用 DCOM,您将拥有更多伤害自己的方式。
除此之外,它还可以工作,例如,它是在单独的进程中托管进程内 COM 组件的好方法。
【讨论】:
如果您尝试构建客户端服务器应用程序并希望通信跨越网络边界(例如互联网),那么 DCOM 可能会因防火墙而出现问题。
我曾开发过一个非常成功的使用 DCOM 分发的服务器应用程序,我们通过创建 COM+ 服务器应用程序和导出应用程序代理让系统处理大部分复杂性。在这种情况下,只要我们所有的版本都同步,它就可以很好地工作。
【讨论】:
我在 90 年代后期使用 DCOM 实现了一个大型系统。尽管它工作得很好,但也存在一些问题。对于初学者,它使用不可预测的端口号进行通信。它不可扩展,而且使用 WCF 比使用 DCOM 要好得多。
【讨论】:
我认为势头已经转移到 SOAP 和其他 Web 服务技术,因为它是:
我自己从未使用过 DCOM,因此我无法评论它的总体质量或适用性。
【讨论】: