2010-11-09 57 views
3

我有什麼似乎是一個相當普遍的進程間通信需求 - 一個父進程派生一些子進程,而父進程和子進程需要能夠相互(子進程需要進行雙向通信以使父進程保持其狀態爲最新狀態,並且父進程需要能夠檢查子進程是否仍然存在 - 注意子進程不需要相互通信)。雙向進程間通信(通過命名管道) - WCF或.Net Remoting?

我一直在尋找這樣做使用WCF,但我是新的使用WCF這種類型的IPC - 據我所知爲了得到這種雙向溝通我需要兩個父進程和子進程公開WCF服務,這似乎有點兒缺乏。

在另一方面.NET遠程讓這種溝通幾乎無縫的,但每個人都似乎是Remoting是舊帽子的意見,我應該使用WCF。

所以我很努力地選擇我應該採取的方法: - 我的目標是儘可能簡化溝通。 - 安全不是真正的問題。

我應該選擇哪一個?

+0

我會和仍然使用遠程而不是WCF(特別是IPC)。 – leppie 2010-11-09 08:04:25

+0

您應該更正問題標題,WCF而不是WPF – 2010-11-09 08:15:14

回答

4

這兩種技術應該是適合你想要做什麼。這兩種API的主要設計區別是:

  • 遠程處理的目的是使所有接口看起來地方,無論其來源。
  • WCF旨在使所有接口看起來很遙遠,無論它們是什麼來源。

WCF似乎更復雜,因爲它暴露了複雜性而不是隱藏它。既然你聲明的目標是消除代碼的複雜性,你最好還是去Remoting。

話雖如此,WCF將讓你以後發展的實現,例如更改協議,添加安全性等等。只有當你絕對確定你將永遠不需要這樣做,你應該放棄WCF。

我更喜歡WCF方法的一切,但這是一個非常主觀的偏好。

0

取決於你的應用程序如何健談(父母和子女)的。

如果溝通是相當基本的,你可以去.NET遠程處理,但如果你有更復雜的通信方案,我(個人)將與WCF去。