【问题标题】:Two-way interprocess communication (via Named pipes) - WCF or .Net Remoting?双向进程间通信(通过命名管道) - WCF 或 .Net Remoting?
【发布时间】:2011-05-07 02:25:29
【问题描述】:

我有一个似乎相当常见的进程间通信要求 - 父进程产生一些子进程,并且父进程和子进程需要能够相互执行双向通信(子进程需要使父进程的状态保持最新,并且父进程需要能够检查子进程是否仍然存在 - 请注意,子进程不需要相互通信)。

我一直在考虑使用 WCF 执行此操作,但我对将 WCF 用于此类 IPC 不熟悉 - 据我所知,为了获得这种双向通信,我需要两个父级进程和子进程公开 WCF 服务,这似乎有点小题大做。

另一方面,.Net Remoting 使这种通信几乎无缝,但似乎每个人都认为 Remoting 已经过时了,我应该改用 WCF。

所以我正在努力选择我应该采取的方法: - 我的目标是让沟通尽可能简单。 - 安全并不是真正的问题。

我应该选择哪个?

【问题讨论】:

  • 我会并且仍然使用远程处理而不是 WCF(尤其是对于 IPC)。
  • 你应该更正问题标题,WCF而不是WPF

标签: wcf remoting ipc


【解决方案1】:

这两种技术都应该适合您想做的事情。两种 API 的主要设计区别在于:

  • 远程处理旨在使所有界面看起来都是本地的,无论其来源如何。
  • WCF 旨在使所有接口看起来都是远程的,无论其来源如何。

WCF 似乎更复杂,因为它公开而不是隐藏复杂性。由于您的既定目标是消除代码复杂性,您不妨选择远程处理。

话虽如此,WCF 将允许您稍后改进您的实现,例如更改协议、添加安全性等。只有当您完全确定在放弃 WCF 时永远不需要这样做时。

我更喜欢 WCF 方法,但这是一个非常主观的偏好。

【讨论】:

    【解决方案2】:

    取决于您的应用程序(父级和子级)的健谈程度。

    如果通信比较基础,您可以使用 .NET Remoting,但如果您有更复杂的通信方案,我(个人)会使用 WCF。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2017-06-28
      • 2017-09-10
      • 2013-12-31
      • 1970-01-01
      相关资源
      最近更新 更多