2

ASP.NET Web サイトを開発しています。ユーザーは、オンラインのときに Web ページを開いてデータを操作できます。しかし、オフラインのときに作業し、後でオンラインに戻ったときに変更を送信できるようにしたいと考えています。オフライン アプリケーションは非常に簡単に実行できる必要があり、この目的のために別の Windows アプリケーションを開発したくありません。

したがって、起動時に最初にローカル IIS を起動し、次にユーザーのブラウザーで (ローカルで利用可能な) 私の Web サイトのスタートアップ ページを開く実行可能ファイルを作成したいと考えています。

そしてもちろん、この実行可能ファイルを私の Web サイト ファイル、IIS、および SQL Server Express と一緒に 1 つのパッケージとしてユーザーのシステムにインストールできれば素晴らしいことです。

4

2 に答える 2

1

質問を読み直しましたが、すべてのクライアント システムにローカル IIS とローカル データベースがインストールされていることがわかりました。

したがって、解決策は非常に簡単です。

アプリケーション (メイン フォーム)

  1. Windows フォーム アプリケーションを作成します。
  2. WebBrowser コントロールと StatusStrip コントロールをフォームに配置します。
  3. LocalStartUrl と OnlineStartUrl という名前の 2 つの文字列リソースを追加します。これは、ローカルおよびオンラインの Web サイトのホーム/スタートアップ ページのアドレスを保持します。
  4. Form_Load で、オンラインのインターネット接続を確認し、それに応じて Web ブラウザー コントロールで LocalStartUrl または OnlineStartUrl を起動します。メッセージボックスを表示し、ステータスバーを使用してユーザーに同じことを通知できます。

同期モジュール:

データベース同期モジュールはタイマー/個別スレッドで実行され、ローカル データベースとオンライン データベースをバックグラウンドで同期します。保存されていない変更をサーバーに送信し、不足しているデータをサーバーからローカル データベースにダウンロードします。このモジュールの速度を制御して、ユーザーが他の Web サイトを閲覧したり、アプリケーションをスムーズに使用したりするのに問題が生じないようにする必要があります。モジュールは遅くて安定しており、一度に小さなデータのチャンクのみを送信/要求する必要があります。

オフライン モードの場合は、一定の間隔で定期的にオンライン接続をチェックします。インターネット接続が見つかるとすぐに、ユーザーに通知されます。許可されると、オンライン モードに切り替わります。そうしないと、ユーザーは、アプリケーションを閉じて再度起動するまで、オフラインで作業を続けます。

オンライン モードでは、同期モジュールはオンライン データベースとの間でデータを同期します。ユーザーはこのデータベースに接続されていないため、これは影響しません。代わりに、オンラインの Web サイトとデータベースに接続されています。

このアプローチを合理化するには努力が必要ですが、最終的には簡単に達成できます。

于 2012-05-16T21:48:24.267 に答える
0

これは単一のタスクではありません。それは、同期して連携する一連のタスクになります。

Windows アプリケーションは次のことを行います。

  • オフラインの変更をディスク ファイル/データベースなどに書き込みます。
  • Web サイト/FTP サイトがオンラインで利用可能かどうかを定期的に確認してください。
  • Web サイトが利用可能であることが判明し、キャッシュされた変更がある場合はいつでも、ファイルを Web サイト/FTP サイトに送信します。

サーバーは次のことを行います。

  • ファイルを受信するたびに、その有効性と完全性を確認してください。正しいことが判明した場合は、特定のフォルダーに配置します。
  • サーバー上のサービスはフォルダーを監視し、そこにファイルが見つかるとすぐにファイルを処理します
  • サービスは、処理後にファイルを別のフォルダー (バックアップ) に移動します。
于 2012-05-16T12:27:15.717 に答える