12

似乎对 DCOM 有很多敌意,我很想知道为什么。对于一家仍在使用 C++ 编写 Win32 SKD 的公司,在当前或未来的开发中是否有任何不使用 DCOM 的真正理由?某些未来版本的 Windows 将不支持它吗?是不是太脆弱,不能经常工作?与其他技术相比,实施起来是否过于复杂?这是怎么回事?

4

6 回答 6

7
  1. 安全模型。特别是当计算机不在同一个域中(或根本不在域中)时。
  2. 为 Visual Basic(原始,不是 .NET)建模的自动接口,已过时且不适合从其他语言中使用。

如果您只想用 C++ 开发并部署在受控网络中,它可能仍然是一个不错的选择。

于 2009-12-04T16:11:31.810 回答
4

我不喜欢 COM/DCOM,因为"Catastrophic failure"它是错误消息历史上最无用的错误消息。

于 2009-12-04T14:41:42.003 回答
3

好吧,DCOM 是 COM 的分布式版本,COM 本身非常复杂,很容易无意中做错事(请参阅这个最近的问题及其答案作为示例)。使用 DCOM,您将拥有更多伤害自己的方式。

除此之外,它还可以工作,例如是在单独的进程中托管进程内 COM 组件的好方法。

于 2009-12-04T14:27:46.083 回答
2

如果您尝试构建客户端服务器应用程序并希望通信跨越网络边界(例如互联网),那么由于防火墙,DCOM 可能会出现问题。

我曾经开发过一个非常成功的使用 DCOM 分发的服务器应用程序,我们让系统通过创建 COM+ 服务器应用程序和导出应用程序代理来处理大部分复杂性。在这种情况下,只要我们所有的版本都同步,它就可以很好地工作。

于 2009-12-04T14:31:53.017 回答
1

我在 90 年代后期使用 DCOM 实现了一个大型系统。尽管它工作得很好,但也存在一些问题。对于初学者,它使用不可预测的端口号进行通信。它不可扩展,使用 WCF 比使用 DCOM 好得多。

于 2009-12-04T14:28:13.600 回答
0

我认为势头已经转移到 SOAP 和其他 Web 服务技术,因为它是:

  • 在存在防火墙的情况下更容易部署系统
  • 没有供应商锁定

我自己从来没有使用过 DCOM,所以我不能真正评论它的一般质量或适用性。

于 2009-12-04T14:33:27.120 回答