多くのオブジェクトが作成され、そのプロパティがユーザーによって頻繁に変更されるアプリケーションがあります。サーバーにはさまざまなモジュールがあり、各モジュールごとに1つのセッションが作成されます。各セッションは、1つのクライアントと1つのメインアプリを実行するユーザーで構成されています。ユーザーはオブジェクトに干渉し、そのプロパティを変更します。現在、Windowsフォームでプロパティグリッドを使用しています。クライアントがメインアプリにどのように接続するのかはまだ決まっていません。私は二重WCFサービスを考えています。サーバーオブジェクトのUI表現
クライアントUIでのリモートオブジェクトの表現方法を教えてください。私は、VSフォームデザイナーでUIアイテムを手動で作成し、マッピングXMLファイルを配置することを考えていました。初期化時のUIはマッピングテーブルを使用して各UIエレメントのプロパティの詳細を取得し、それに応じて変更します。 UIのパネルのように、マップされたオブジェクトのフォールト状態が真であるときに色が塗りつぶされます。
サーバー上のオブジェクトが頻繁に変更されているため、クライアントにUIを更新するように指示する最良の方法は何ですか。私はクライアントが特定のオブジェクトのために登録されている場合、彼はオブジェクトの変更を通知される二重WCFを考えていました。私の質問は、私たちが私の目標を達成するために
interface IChange { string ObjectName { get; set; } string PropertyName { get; set; } object NewValue { get; set; } object OldValue { get; set; } }
が私を提案する代替またはより良い方法を(新しいタイプに包まれた)オブジェクトIDと共にクライアントのみ更新プロパティにオブジェクト全体を転送する必要がありますです
編集
今のところ、オブジェクトの数はそれほど多くはありませんが、大幅に増加する可能性があります。このアプリケーションはプラグインベースであり、開発者は数千のオブジェクトを追加することができます+複数のプラグインが存在する可能性があります。オブジェクトのサイズ私は10-20kBを超えるとは思っていませんが、明確ではありません。ポイントは私がクライアントにオブジェクト全体を送る場合です(オブジェクトの90%は役に立たず、更新されたプロパティのみがクライアントに関連します)。クライアントはすべてのプロパティをスキャンしてUIを更新する必要があります。しかし、クライアントに変更を送信するだけであれば、クライアントは何を変更するかを知っています。オブジェクトの更新は非常に頻繁に起こる可能性があります。オブジェクトの1つのプロパティが変更されると、他のオブジェクトへのいくつかの変更(連鎖反応の一種)が発生し、すべての変更を通知する必要があります。たとえば、家のメインスイッチのIsOnプロパティを変更すると、すべてのアプライアンスがシャットダウンされます。このようなオブジェクトの変更は、すべてクライアントに通知する必要があります。クライアントが各オブジェクトのシャットダウンを通知すると、実行中でないUI上のすべてのアプライアンスが表示されます。
通常、オブジェクトはどのくらいの頻度で変更されますか? –