0

Knockout.js で MVVM を見ています。私が達成したいことの 1 つは、MVVM POCO の背後にあるコードを、対応する JS オブジェクトとしてクライアントに「簡単に」取得することです。

アイデアは次のとおりです。

a) C# POCO を変更すると、JS オブジェクトにも反映されます b) POCO の値を変更すると、JS オブジェクトを更新するためにクライアントとのやり取りが必要になります

これは、SignalR ( http://signalr.net/ ) を使用してこれを行うときだと思いますか? そして、KO のマッピング プラグイン ( http://knockoutjs.com/documentation/plugins-mapping.html ) を使用して、これをオブザーバブルに変換します。

だから私の質問は:

  1. SignalR を介して POCO サーバー側のデータを KO に取得するという点で、私の仮定は正しいですか?
  2. 1.を達成する別の方法はありますか?
4

1 に答える 1

1

はい、SignalR を使用して、オブジェクトの POCO 表現に対するリアルタイムの変更をクライアントにプッシュできます。つまり、プロパティを変更するという点では自動ではなく、魔法のようにメッセージを送信します。特定のオブジェクトが変更されたときに特定の SignalR メッセージを確実に送信するには、配管を構築する必要があります。そのオブジェクトの表現全体 (現在のすべての値など) を再送信するか、より効率的に変更されたことがわかっている値のみを送信するかを選択できます。

そこから、オブジェクトの対応する JS 表現を更新する必要があります。Knockout を使用している場合は、そのオブジェクトのすべてのオブザーバーに適切な通知が行われます。JS オブジェクトの変更を監視し、メッセージをサーバーに送り返すことで、これを逆方向に実行することもできます。

明らかに重要なのは、適切な JS/POCO オブジェクトとの間でメッセージを関連付けることができるように、各オブジェクトが何らかの一意の ID を持っている必要があることです。

于 2013-07-11T04:47:53.593 に答える