2011-07-21 57 views
3

我正在尋找一些最佳實踐概念,以便在移動設備之間傳輸數據(Android現在,但其他概念也適用於其他概念)。我目前有一個WCF服務設置了一個工作的JSON端點。我開始用適當的WebGet/Invokes等修改現有的服務方法,使其成爲RESTful。該服務實現請求/響應模式,以便客戶端和服務之間的所有通信都包裝在複雜的MessageRequest和MessageResponse對象中。移動應用程序和Web服務數據傳輸(WCF和JSON)

使移動應用程序成功使用此模式的最佳方式是什麼?只有兩個解決方案,我可以想出,每個都有自己的優點和缺點:

  1. 創建所有客戶端項目中的數據傳輸對象,然後創建一個JSON/DTO映射器(GSON可能工作以及在這裏)。使用客戶端對象來處理所有客戶端數據管理,直到需要服務器請求爲止,轉到DTO-JSON並將請求發送到服務器。這裏的優勢在於,它使得客戶端數據管理更加容易,因爲它與服務領域相似。缺點是這些有可能破壞對象變得越複雜。
  2. 忽略DTO的客戶端,只是直接從JSON做所有事情。這裏的優點是它消除了與較大對象和所需映射相關的開銷。這裏的缺點是這讓我覺得非常脆弱 - 任何對返回對象的更改都需要在代碼中深入處理,而不是僅僅對客戶端DTO和映射器進行更改。

有沒有更好的方法來完成這種數據交換?還是這些是處理它的唯一真正方法?您如何管理移動應用程序中的數據傳輸?

回答

0

我有一個非常類似於您的WCF設置,並最終創建了非常輕量級的數據對象客戶端。這些管理將代表自己的JSONObject分開並創建它們需要的任何子對象,但除此之外,這些簡單類主要用於將數據分組在一起並且不包含業務邏輯。我們還沒有需要做任何客戶端緩存,但是這些對象將成爲放置SQLite代碼來堅持自己的好地方。

到目前爲止,它已經運行良好,我們甚至能夠將客戶端Android代碼移植到運行普通Java的另一個項目中,只需包含org.json即可。

相關問題