はじめに
今回の記事では、Silverlightアプリケーションからデータベースのデータを取得して、コントロール上に表示する手順を紹介します。
データはADO.NET Data Servicesを用いWebサービスとして公開されているものを用います(このWebサービス構築の手順は前回の記事を参照してください)。
また、この連載はサンプルシステムをベースに説明を行います。以下のサイトからサンプルコードや実行ファイルを入手して、確認しながら読み進めていただけると、より一層理解が深まると思います。
サンプルアプリケーションの公開サイト
SilverlightアプリケーションからWebサービスを呼び出す際の注意
Silverlightアプリケーションは、自身がホストされているサーバーとは異なるドメインにあるWebサービスの呼び出しは基本的にできません。これはセキュリティ上の制限です。
本連載で確認するSilverlightアプリケーションは、Visual Studioのデバッグ実行で確認する形になるため、ASP.NETの開発用IISサーバー上にホストされ、そのアドレスはVisual Studioの設定に従って次のようになります。
http://localhost:Visual Studioに設定したポート番号
SilverlightアプリケーションとADO.NET Data Servicesで構築したサービスが、例えば同じ「http://localhost:8928」というアドレス(ドメイン)上にホストされていれば、呼び出すことが可能ですが、例えば「http://localhost:8929」などという場所にあるサービスの呼び出しは行えないことになります。
前回の手順の中で、ADO.NET Data ServicesをSilverlightアプリケーションがホストされるWebアプリケーションプロジェクトの中に実装したのは、この理由からです。
クロスドメインを意識したWebサービス呼びだしを実現する場合、方法はいくつか考えられますが、ポリシーファイルを設置することもその一つになるでしょう。
clientaccesspolicy.xmlというファイルを構築して、Webサイトのルートに置き、そのサービスへのアクセスを許可するドメインを指定することが可能です。
こちらの詳細な情報は「MSDNライブラリ:ドメインの境界を越えてサービスを利用できるようにする」を参照してください。