2008-12-14 131 views
3

我們正試圖提出我們的客戶端和服務器標準,並且存在很大的爭議。一派思想是C#客戶端和Java服務器使用某種類型的專有消息庫共享數據對象(認爲XML就像結構一樣)單聲道 - 客戶端和服務器上的共享代碼。 。

這個模型的問題是有很多代碼需要重複(驗證,解析),如果你在服務器上使用C#也可以簡單地重用。如果有很大的推動力使用Linux機器,那麼單聲道不會支持你的目標。 。

其他人有這個困境?

回答

4

有框架。 ICE(ZeroC),「協議緩衝區」等。

例如,我的協議緩衝區實現(protobuf-net)在單聲道,MS .NET,CF,Silverlight等上工作 - 並且二進制格式兼容範圍語言(Java等)。如果你從一個.proto(一個定製的定義語言)開始,你可以用它來生成你需要的每種語言的對象層。

+0

使用單詞bespoke +1 – 2008-12-15 08:06:07

0

我會盡量保持客戶端和服務器相同的運行時(Java或CLR)。我們使用Mono和.Net客戶端/服務器組合取得了很大的成功。

1

在任何情況下,我都會使用Protocol Buffers或其他語言中性格式定義的通訊,以確保您在將來不受限制。

一旦你完成了,你可以從Mono上的C#開始。然後,如果這證明是行不通的,你可以切換到不同的語言。

1

我建議你使用一些舊的但是很好的標準來在兩者之間傳輸數據,SOAP和XML-RPC讓我想起了這個例子。如果其中任何一個可能或可行,您可能需要嘗試JSON或編寫自己的XML格式。協議緩衝區最近已經被提到了很多,但我沒有看到它,所以我真的不能說任何事情。

相關問題