双向进程间通信(通过命名管道) - WCF或.Net Remoting?

时间:2010-11-09 07:59:39

标签: wcf remoting ipc

我有一个相当常见的进程间通信要求 - 父进程生成一些子进程,父进程和子进程需要能够彼此进行双向通信(子进程)需要保持父进程与其状态保持同步,并且父进程需要能够检查子进程是否仍然存活 - 请注意子进程不需要相互通信。

我一直在考虑使用WCF这样做,但我是新手使用WCF进行此类IPC - 据我所知,为了获得这种双向通信,我需要父母双方进程和子进程公开WCF服务,这看起来有点像faff。

另一方面.Net Remoting使得这种通信几乎是无缝的,但是每个人似乎都认为Remoting是老套的,我应该使用WCF。

所以我很难选择我应该采取的方法:   - 我的目标是尽可能简化沟通。   - 安全不是真正的问题。

我应该选择哪个?

2 个答案:

答案 0 :(得分:4)

这两种技术都应该适合您想要做的事情。两个API之间的主要设计差异是:

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

WCF似乎更复杂,因为它暴露了复杂性而不是隐藏它。由于您声明的目标是消除代码复杂性,因此您也可以选择Remoting。

话虽如此,WCF将允许您稍后改进您的实施,例如改变协议,增加安全性等。只有当你完全确定你永远不需要这样做时,你应该放弃WCF。

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

答案 1 :(得分:0)

取决于你的应用程序(父母和孩子)的健谈程度。

如果通信是基本的,你可以选择.NET Remoting,但如果你有一个更复杂的通信方案,我(个人)会选择WCF。