2009-05-21 114 views
3

我比一切建議都多。.Net Remoting不使用.Net遠程處理?

我下面舉個例子:

Appication1.exe - 有對象MYLIST

Application2.exe - 需要獲取MYLIST並與對象,就好像它是從應用2創建交互。

我應該使用.NET Remoting(即2.0)還是WCF或其他技術堆棧?有什麼框架可以支持這個?每個的優點/缺點是什麼?

我應該注意到,這更像是一個'幫手'應用程序,不會被開發團隊以外的任何人使用。

回答

0

我認爲合理的選擇是使用.NET遠程處理。您將不得不在Application1上爲Application2創建一個Web服務來與之通話。唯一的缺點是「MyList」需要用MarshalByRefObject標記。 MSDN說遠程處理現在是有利於WCF的傳奇東西(.NET 3.0)。但據我所知,Remoting是跨平臺應用交流的唯一遊戲。

+0

不應該「MyList」也是可串行化的嗎?或者它所在的類/對象? – IAbstract 2010-01-23 03:08:38

1

這很難說。 WCF肯定是一種可能性。您必須擁有兩個應用程序的控制權,並更改App1以支持(在推或拉模型上)將數據傳輸到App2。如果您不一定需要按需交換數據,則可以將數據庫視爲傳輸數據的方法。如果App1已經將一些數據寫入數據庫。然後你可以讓App2從那裏獲取它需要的數據。或者如果交換不經常發生,你甚至可以使用文件系統。將列表序列化並用App2抓取它。 (我只是建議,因爲它聽起來像是在嘗試將開發工具掛接到已存在的東西)。

遠程處理是一種老舊的技術,充滿了困難的實施和部署問題。 WCF更簡潔,更易於實現。所以,如果它介於兩者之間,我肯定會推薦使用WCF進行遠程處理。

8

很難說如果不知道你的應用程序的更多細節,但我個人不會在這種情況下使用WCF。 WCF管道非常重,需要花費大量精力來設置和使用。它的API也非常適合Web服務,這在你的情況下似乎是過度的。微軟聲稱WCF取代了遠程處理,因爲他們不想再支持遠程處理,但同時使用了兩者,我可以說WCF遠不如在同類應用程序中移動數據的遠程處理。

但是,有很多方法可以將數據從一個應用程序移動到另一個應用程序,各有各的優缺點。所有這些方法的全面討論超出了本評論的範圍。你能添加更多關於你的使用場景的細節嗎?這個列表中有什麼樣的數據,它有多大,它來自哪裏,正在做什麼樣的修改,應用程序1需要查看更改,應用程序2是否將數據發送到其他地方完成等...

3

我假設應用程序1是一個生產應用程序,而應用程序2是開發專用助手應用程序。如果是這種情況,您的目標應該是儘量減少或消除應用程序1中與支持應用程序2相關的任何額外開銷。因此,應該消除非常繁重的WCF作爲選項。遠程處理還增加了開銷。

你可以序列化對象 - 也許XML適合這個?

這個問題有太多的變數來完全回答它。你能提供關於應用程序1和應用程序2的更多信息嗎?它們在哪裏運行?你感興趣的物體經常變化嗎?他們如何保持國家?

+0

我對此進行了投票,因爲它似乎是最合乎邏輯的訪問列表的方式,沒有任何Remoting或WCF的開銷。讓app1只需將列表序列化爲Xml或Binary格式化程序。 – IAbstract 2010-01-23 03:11:13