3

リモートサーバーでSQLServer2005を使用するasp.netWebフォームアプリケーションがあります。すべてのコントロールは、linqを使用してsqlにバインドされます。

私は完全なオフライン機能を提供しようとしているので、sql server dbと同じようにsqliteデータベースを作成し、それをユーザーのデバイスにインストールして、接続が失われた場合やユーザーがオフラインで作業したい場合は、バインディングをsqliteデータベース?ユーザーが最初にログインし、後で同期するときに、すべてのユーザー情報をsqlitedbにダウンロードすると思います。

これにより、特にモバイルデバイスで、オフライン時にデータコントロールが正しく機能するようになりますか?

ローカルストレージなどを調べましたが、必要に応じて、ユーザーが1日中オフラインで作業できるようにする必要があります。また、プログラム全体に大きな変更を加える必要がありますが、これはオプションではありません。

私の要件は、このasp.netWebフォームアプリケーションを大幅な変更なしにオフラインで機能させることです。

アプリケーションをasp.net2008から2010に、そして今は2012に変換しました。

この変換を完了するには3か月あります。これには、選択したテクノロジーを学習することも含まれます。大規模なアプリケーションなので、それほど時間はかかりません。

どんな提案でも素晴らしいでしょう。

また、提案されたsqliteデータベースについてどう思うか知りたいです。

ありがとう

4

3 に答える 3

3

ブラウザでのオフライン作業に関しては、次のHTML5APIを確認することをお勧めします。

  • AppCache(サーバーから必要なすべてのファイルをロードして、サーバーが使用できない場合でもサイトが起動するようにします)。
  • IndexedDb。これにより、複数のブラウザセッションにわたって永続的なオフラインデータストレージが可能になります。

上記のアーキテクチャでは、sqlite、またはブラウザとは別のそのようなローカルデータベースをインストールすることに加えて、ブラウザが通信できるローカルの「サーバー」コンポーネント(または他のそのようなWindowsサービス)も提供する必要があります。ブラウザとデータベース間の通信を有効にします。

次の図は、機能する例と例を示してますが、HTML5ですでに構築されているものを再発明することになります

アーキテクチャの例

于 2013-02-28T09:09:58.187 に答える
2

これが可能かどうかはわかりません。まず、Webアプリケーションでは、ページを表示するためだけにサーバーを実行する必要があります。次に、接続するためのローカルデータベースが必要になります。それらを同期することは難しくありません。大きな問題は、すべてのユーザーに対してローカルでアプリケーションをホストすることです。

Webアプリケーションを使用する代わりに、リモートデータベースに接続するWindowsアプリケーションを使用することをお勧めします。リモートDBに到達できない場合は、ローカルデータベース(sqllite db)にフォールバックできます。次に、接続が復元されたときに、2つのデータベースをプログラムで同期できます。これは、「時々接続されるアプリケーション」と呼ばれるものを作成することによって実行できます。ここに良い記事があります:http://www.codeproject.com/Articles/29459/Introduction-to-ADO-NET-Sync-Services

于 2013-02-28T19:42:06.613 に答える
1

それは不可能です。ブラウザで実行されるWebフォームアプリにクライアント側のローカルデータベースへのアクセスを強制することはできません。

どういうわけか、要件を満たすには、アプリのアーキテクチャを変更するか、オフラインで作業するための追加の個別のチャネルを提供する必要があります。追加のチャネルは、ローカルストレージを使用するhtml5アプリ、Sterlingなどのクライアント側のSilverlightデータベースの1つを使用するSilverlightクライアント、またはクライアント側で利用可能な任意のデータベースを使用するWinFormClickOnceアプリです。

于 2013-02-24T20:53:16.460 に答える