5

バックエンド SQL データベースとの間でデータをクライアント アプリケーションに仲介する Web API を備えた既存のクラウド ベースのソリューションがあります。すべて非常に標準的です。私の Web API は .NET Core を使用して構築されています。これはうまく機能しており、構築されたさまざまな Web クライアントで既存の Web API を利用しています。アーキテクチャは次のようになります。

現在のソリューション 現在のソリューションは、Web API を使用するネイティブ モバイル クライアント アプリケーションをサポートするように拡張する必要があります (ここでは異常なことは何もありません。通常、他のクライアントと同じように Web API を呼び出します)。しかしこれらの新しいクライアント アプリケーションは、オフライン シナリオで使用できます。これは、必要なたびに Web API を呼び出すためにデバイスにデータ接続が存在することを期待できないことを意味します。データをオフラインにして、必要に応じてサーバーに送り返すことができるように、データの同期を検討する必要があります。

考えてみると、データは次の 2 つの方法のいずれかで同期されます。

  • 一方向の同期 - サーバーからクライアントへのデータですが、システム ルックアップ テーブルなどのこのデータは変更されません。
  • 双方向同期 - 既存のデータはクライアントに同期され、変更されてサーバーに送り返されます。または、クライアントで新しいデータが作成され、新しい注文などに送信されます。

新しいアーキテクチャは次のようになります。

ここに画像の説明を入力

それで-私の質問に行きます-データの同期(一方向および双方向)または同期コードが組み込まれているNuGetパッケージに関して従うべき良い設計パターンを知っている人はいますか? 可能であれば、同期に関して車輪の再発明を避けようとしています。

注: 情報提供のみを目的として、ネイティブ モバイル アプリは Visual Studio 2015 で Xamarin を使用して構築されます。

4

1 に答える 1