2017-06-05 14 views
0

多くのユーザーが使用する1つのDBを持つアプリケーションがあります。 1人のユーザーが変更を加えるたびに、変更がデータベースに保存されます。更新時に他のユーザーに通知をアクティブにするにはどうすればよいですか?

今、この変更について他のログインユーザーに通知する必要があります。これはどうすればできますか?

私は考えています - アプリケーションがデータベースにデータを正常に保存/更新すると、アプリケーションは新しいレコードを更新または追加して、接続されたクライアントに通知を送信します。

私はC#とSQL Serverデータベースを使用しています。

+0

これはウェブアプリケーションですか?クライアントとデータベースの間にサービス層がありますか? –

+0

はウェブアプリケーションではありませんが、ウィンドウはアプリケーション開発者です.. –

答えて

0

あなたの即時オプションは、メッセージバスや既知のIDのポーリングループなどのプッシュ型通知です。

メッセージバスは、Windowsアプリケーションに適したパブリッシュ/サブスクライブモデルで動作します。 MassTransitまたはMSMQを出発点としてご覧ください。そこにはたくさんのオプションがあります。彼らは本質的にポーリングループをSignalRのようなクライアントと包む何かを使ってWebアプリケーションに結合することができます。

ポーリングベースのオプションは通常、タイマーで動作し、差異が見つかった場合にレコードを再ロードして、データベースに対して迅速なタイムスタンプまたはバージョン番号のチェックを行います。

プッシュベースの方が効率的ですが、サポートされているアプリケーション間の変更のみを通知します。 (クライアントからクライアント)は、パブリッシャとして参加していないアプリケーションによる変更を検出せず、データベースに直接加えられた変更も認識しません。

ポーリングベースのオプションはすべての変更をカバーしますが、一般的には遅く、有効に機能するにはバージョン情報を持つスキーマが必要です。

関連する問題