現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。APIをSilverlightで使う方法はじめにこんにちは。Silverlightでの制作案件を担当しております。IDとの連携について、サービスの開発事例をもとにご紹介したいと思います。IDにひもづいたXMLデータをどうやって取得したか、ということです。IDにひもづいたXMLデータの場合は、そう単純には行きません。IDの認証プロセスがあり、個人情報の保護をしていなくてはならないからです。IDを認証し、かつXMLデータを取得するためにはどうすればいいかということなのですが、今回は外部(Silverlightが埋め込まれたHTML内)にあるJavaScriptを経由することによってこの問題を解決しました。データの流れまず全体のデータの流れを順を追って見ていきたいと思います。Silverlightが読み込まれる。SilverlightはパラメーターをJavaScriptの関数に渡す。JavaScriptではバックエンド側でセッションキーを生成し、WebAPIに渡す。WebAPIではバックエンドで生成されたセッションキーの検証を行い、データベースサーバーと通信。処理が終わると、非同期で、XMLをJavaScriptの関数に渡す。JavaScriptの関数は、Silverlightのメソッドを呼び出し、WebAPIの結果であるXMLをそのまま渡す。XMLを利用し渡されたXMLから必要な情報を取り出し、結果画面を表示させる。図に表すとこのようになります。ここでポイントとなる点は2つです。IDの認証(セッションキーはバックエンドで生成し照合を行います)1つ目は私のほうで担当し、2つ目については、同じプロジェクト内のエンジニアが担当していました。この方法ではSilverlight自体が外部のサーバーと通信する必要がないため、WebClientクラスは使用しなくてもいいです。そのぶんライブラリを持つ必要もなくなるので容量の削減にもつながっています。2つ目のポイントについて少しだけ説明します。実はJavaScriptとWebAPIはすべて同一ドメイン内です(※上の図点線内参照)。WebAPIリクエストには必ずJavaScriptを配布しているドメインで発行されたセッションキーが存在するというのを確認する必要があるため、WebAPIとJavaScriptが同一ドメインでないといけません。詳しいことはエンジニアの担当領域なので説明はしませんが、ご了承ください。ちなみにデータベースサーバーは別ドメインです。それでは、次に私が担当した1つ目のポイントについて説明します。HTMLブリッジSiverlightとJavaScript間のデータのやり取りについては、SilverlightのHTMLブリッジというものを利用してお互いの定義済みの関数を呼び出しています。図で言うとこの部分のデータのやりとりです。上記2番の「SilverlightはパラメーターをJavaScriptの関数に渡す。」ではこのようなメソッドを使用しています。マネージコードはC#です。引数);逆に、上記5番の「JavaScriptの関数は、Silverlightのメソッドを呼び出し、WebAPIの結果であるXMLをそのまま渡す。slObject.メソッド名("ここの引数でXMLを渡す");※これら2つの例はデフォルトでは実行できません。名前空間の指定であったりだとかJavaScriptにマネージコードを公開するための下準備などがあるのですがここでは省略しています。これによってXMLデータをSilverlightに渡すことができました。XMLによってクエリし必要な情報を取りだして、結果画面に表示させています。HTMLブリッジを使用してJavaScriptと連携するのはとても有効な手段です。Silverlight単体だけではできないことも、JavaScriptと連携することにより、できるようになったりします。JavaScriptからHTMLやXAMLを操作して表示要素を動的に変更したり、アクセス解析、広告の操作など、いろいろとできるようになります。YUIやjQueryなどのライブラリを活用しSilverlightと連携することにより制作時間の短縮が期待できることも大きなメリットではないでしょうか。多用しすぎるとWEBサイト全体のファイルサイズが大きくなり読み込みの時間が長くなったり、処理が重くなったりとパフォーマンス低下に繋がる恐れがあるので注意が必要です。IDとの連携をしています。クラウド時代のアプリケーション開発にはIDとの連携が重要になってきます、また個人情報をどのように保護するかという観点も考えつづけなければならない問題ではないでしょうか。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。