2010-07-02 120 views
9

我可以理解WCF總體上比Remoting更好,但這兩者看起來與我完全不同。 MS使這幅漂亮的圖片顯示WCF的性能如何(或者其他技術人員只能選擇一個盒子): alt text http://i.msdn.microsoft.com/dynimg/IC371617.jpgWCF是否真的取代了.NET Remoting?

但是,WCF是以SOA爲中心的,我不認爲這是正確的假設每個聯網應用程序都希望公開服務。

就我而言,我正在尋找在不同PC上的服務器應用程序的兩個實例之間複製對象的方法。 WCF似乎只是提供了一個現代版本的COM ...獲得一個對象並調用方法,並在另一臺PC上神奇地調用該版本。但Remoting似乎做了一些完全不同的事情,我不清楚爲什麼它被棄用而不被類似的技術所取代。

那麼,MS甚至聲稱Remoting已經死了?還是他們仍然支持它,承認它的位置旁邊 WCF?

+0

請參閱http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated,另外 - 在您的應用中啓動WCF終端併發送對象來回很容易。 – nos 2010-07-02 07:48:37

+0

我不是說這是一個確切的重複,因爲你的情況的具體描述。但(像上面發佈的nos)這個問題討論了是否不推薦使用遠程處理http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated – MarkJ 2010-07-02 07:51:54

+0

@nos,來回發送對象,你仍然需要一個API儘管像newForumPos(ForumPost)等等......你必須編寫代碼來傳輸對象或其字段,而不是像XSTM的工作方式那樣自動完成(http://xstm.net/) – 2010-07-02 08:14:54

回答

6

它確實取代.Net遠程處理。您可以使用帶有Tcp通道的二進制格式化程序,並獲得與遠程處理相同的體驗。

對於你的情況,遠程處理似乎並不是正確的選擇。如果你想複製對象,比如在不同的位置創建它們的副本,那麼你需要序列化它們並將它們作爲一個包發送(WCF術語中的「消息」)以加載到一個類型中(可以是相同的鍵入相同的程序集,但部署在不同的服務器上)在遠程端點上。這是WCF擅長的地方。遠程處理會爲您提供從一個端點到另一個端點的「實時」對象的連接。

+0

也許我誤解遠程處理...它是否_replicate_對象或保留遠程_accessed_服務器副本? – 2010-07-02 08:12:44

+0

@John:既不WCF也不是 - 發送序列化消息 - 消息只是數據,沒有行爲/代碼/方法。在這方面,是的,WCF不能代替遠程處理,因爲它實際上不是一種「遠程控制對象」類型的技術。 – 2010-07-02 08:29:28

+3

@John - 使用.Net Remoting,它是後者:遠程訪問對象的狀態,只是封送來自終端的呼叫-to-端點。如果你想發送實際的對象,你想要的更多的是面向服務的東西,它將對象狀態序列化並作爲消息從端點發送到端點。 WCF可以兼得,但發送消息更自然。原因是我們通過DCOM瞭解到跨邊界透明地訪問對象狀態是一個糟糕的設計。 – codekaizen 2010-07-02 08:56:17