スレッド化の利用、DOM の操作、Comet のような機能の実現などのタスクを Silverlight に引き渡すことで、Silverlight を使用して Web ページを強化する方法の概念実証チュートリアルを示す多くのものをオンラインで見てきました。
それはすべて非常に興味深いようですが、多くを見つけることができないように見えるので、共有する実際のユースケースを持っている人はいます.
スレッド化の利用、DOM の操作、Comet のような機能の実現などのタスクを Silverlight に引き渡すことで、Silverlight を使用して Web ページを強化する方法の概念実証チュートリアルを示す多くのものをオンラインで見てきました。
それはすべて非常に興味深いようですが、多くを見つけることができないように見えるので、共有する実際のユースケースを持っている人はいます.
もちろん。私が HTML DOM インタラクションを使用した理由はいくつかあります。
まず、既存の ASP.NET アプリケーションを Silverlight に移行する場合。私たちが使用したアーキテクチャでは、アプリケーションは非常に多くのコールバックを備えた AJAX ベースでした。Silverlight のホイールを再発明する代わりに、DOM インタラクションを使用してブリッジを提供し、Silverlight コントロールが同様の方法でコールバックできるようにすることができました。これは、ASP.NET セキュリティとビューステート情報を使用してサーバーから情報をフェッチし、Silverlight アプリケーションにプルすることを意味していました。データはすでに JSON 形式で返されていたので、解析して Silverlight アプリケーションに戻すのは簡単でした。
もう 1 つの例は、サードパーティのコントロールおよびサービスとのやり取りです。たとえば、Google アナリティクスは豊富なページ トラッキング機能を提供します。このプロジェクトは、代表的な例を提供します。
http://silverlightanalytics.codeplex.com/
アプリケーションを統合でき、Silverlight で実行している場合でも、基本的にクリック、アクション、およびページ ビューを追跡しています。
私がこれを使用したもう 1 つの場所は、Silverlight がアプリケーションとしてではなく、ページ上のパーツまたはコントロールとして使用される場合です。Silverlight コントロールはローカル通信を使用して相互に通信できますが、これは他の Silverlight 以外のコントロールでは機能しません。HTML-DOM ブリッジを使用すると、コンポーネント間の JavaScript ベースの通信を簡単に構築できます。たとえば、Silverlight コントロールは、地域を参照できるインタラクティブな世界地図です。リージョンを選択すると、JavaScript イベントが発生し、他のコントロールがリッスンして、その理由に基づいて更新します。
また、フォームが DOM ブリッジを使用して Silverlight アプリケーションへのユーザー入力を検証する Captcha コントロールのようなコントロールとして Silverlight を使用することもできます。
Silverlight コントロールが DOM インタラクションを使用して現在のページを移動し、これに基づいてアニメーション化されたタグのクラウドを生成するタグ クラウド アプリケーションを見てきました。
うまくいけば、それらはいくつかの実際の例を提供します。
私がDOM-Bridgeを使用したことの1つは、イベントを発生させることです。私のアプリケーションをホストするhtmlページはこれらのイベントをサブスクライブし、結果として反応します。
たとえば、私のアプリケーションは、WCFWebサービスからの販売データを受信して表示します。データが変更されると、ページの残りの部分に他のものを表示できるようにイベントが発生します。
ASP.Netを使用できない場合、Webサービスからのデータの要求と受信はJavascriptよりもSilverlightの方がはるかに簡単で、エラーが発生しにくくなります(また、最適化された「binary-xml」エンコーダーを使用できるため高速です)。
DOMブリッジは、バックエンド環境を想定することはできないがSLアプリと対話する機能を提供する必要がある任意のWebサイトに埋め込まれるSilverlightアプリを配布する場合に最も役立つと思います。