2011-07-21 13 views
3

私はモバイルデバイス間でデータを転送するという点でベストプラクティスコンセプトを探しています(Androidは現在のところですが、概念は残りの部分にもかなり適用されます)。私は現在、動作中のJSONエンドポイントでWCFサービスをセットアップしています。私は適切なWebGet/Invokesなどで既存のサービスメソッドを変更してRESTfulにしています。このサービスは、クライアントとサービス間のすべての通信が複雑なMessageRequestおよびMessageResponseオブジェクトにラップされるように、要求/応答パターンを実装します。モバイルアプリケーションとWebサービスのデータ転送(WCFとJSON)

モバイルアプリケーションでこのパターンをうまく利用するには、どのような方法が最適ですか?私が思い付くことができる唯一の2ソリューション、自分の長所と短所を持つそれぞれがあります。

  1. は(GSONはここでうまくいくかもしれないクライアントプロジェクト内のすべてのデータ転送オブジェクトを作成し、JSON/DTOマッパーを作成)。クライアント側のオブジェクトを使用して、サーバー要求が必要になるまですべてのクライアントデータ管理を処理し、DTO-to-JSONに移動してサーバーに要求を送信します。ここでは、サービスドメインと並行しているため、クライアント側のデータ管理がより簡単になります。欠点は、これにより、オブジェクトがより複雑になるほど、これが故障する可能性があるということです。
  2. DTOのクライアント側を無視して、JSONから直接すべてを実行してください。ここでのメリットは、大きなオブジェクトに関連するオーバーヘッドと必要なマッピングを削除することです。ここでの欠点は、これが私に非常に脆弱であるということです。クライアント側のDTOとマッパーを変更するのではなく、返されるオブジェクトの変更をコード内で深く処理する必要があります。

このデータ交換を行うより良い方法はありますか?あるいは、これらを扱う唯一の本当の方法はありますか?モバイルアプリケーションでのデータ転送をどのように管理しますか?

答えて

0

私は非常に似たWCF設定をしていますが、クライアント側の非常に軽量なデータオブジェクトを作成しました。これらは、自分自身を表現するJSONObjectを引き離し、必要なサブオブジェクトを作成しますが、それ以外は主にデータをグループ化してビジネスロジックを含まない単純なクラスです。私たちはまだクライアント側のキャッシュを行う必要はありませんが、これらのオブジェクトはSQLiteコードを自分自身に残すために最適な場所です。

これまでのところうまくいきました。さらに、クライアント側のAndroidコードを、org.jsonを含むだけで通常のJavaを実行する別のプロジェクトに移植することもできました。

関連する問題