私は VB.NET (コンパクト フレームワーク) でモバイル アプリケーションを構築していますが、デバイス上で発生する可能性のあるオフライン インタラクションにアプローチする最善の方法を考えています。基本的に、デバイスにはセルラーと 802.11 がありますが、まだオフラインの場合があります (受信状態が悪いなど)。ドライバーはトラックを離れるときにボックスをスキャンします。ネットワーク信号がある場合はすぐに新しい場所を更新し、オフラインの場合はキューに入れ、後で処理します。しかし、一般的にオフライン性をどのように処理するかについて考えさせられました。
- デバイスがオフラインの場合に使用できるように、できるだけ多くのデータをデバイスにキャッシュしますか? 基本的に、各デバイスには (関連する) 運用データのコピーがありますか? それとも、後で同期するという頭痛の種を避けるために、オフラインのときに特定の機能を無効にする方がよいでしょうか? これは私のアプリに依存するかなり具体的な質問であることは知っていますが、他の人がこのルートをたどったかどうかを知りたいです.
- 常にオフラインであるかのように動作するようにアプリケーション自体を構築し、ローカル クラスが所有する種類のローカル キューにすべてを送信し (本質的にオンライン/オフラインのものを抽象化します)、クラスに次のようにサーバーに送信させますか?できる?データ ルックアップについてはどうですか?「セミライブ」方式でどのように処理できますか?
- または、アプリケーションが要求をサーバーに直接、リアルタイムで送信し、要求自体が失敗した場合にそれを処理するように試行する必要がありますか? ユーザーをタイムアウトまで待たせる潜在的な問題があることがわかりますが、これが最も信頼できる方法ですか?
私は特定の解決策を探しているわけではありませんが、実際には開発者が可能な限りスムーズなユーザー エクスペリエンスでこれを達成する方法の話であり、ハウツーやここで考慮すべきことなどへのリンクが含まれています。ご指摘ありがとうございます。