はじめに
Silverlightはブラウザにダウンロードして動作するアプリケーションです。
つまり業務アプリケーションでメインとなる、データの更新や検索、他システムとの連携といった処理を記述するためには、Silverlightとサーバーサービスとの間で通信を行い、データをやりとりする必要があります。
Silverlight 1.0ではJavaScriptしか利用できなかったため、AJAXでよく利用されるXMLHttpRequest
オブジェクトを使用してサーバとの通信を行っていました。Silverlight 2.0(以降、断りのない限り「Silverlight」と表記)では.NET Frameworkのサブセットとして動作するため、WebClient
やHttpRequest
/HttpResponse
、Socket
クラスといったネットワークAPIを利用してサーバーサービスとの連携プログラムを簡単に作成することができます。
今回はSilverlightとサーバーサービスの連携を行うための基礎について解説します。
対象読者
Silverlight開発初心者。
SilverlightのネットワークAPI
最初に述べたように、Silverlightでは.NET Frameworkの各種クラスを使用してネットワークプログラムを記述することができます。
Silverlightでは、次の方法でサーバーサービスとの連携を行うことができます。
- ASP.NETサービスリファレンスの利用
- System.Net.WebClientの利用
- System.Net.HttpRequest/HttpResponseの利用
- System.Net.Socketの利用
これらはSilverlightでも.NET Frameworkのサブセットとして定義されています。
動作はほぼ同じですが、Silverlightではサポートされていないメソッドがあるため、MSDNライブラリで詳しい仕様を確認してください。
ASP.NETサービスリファレンスの利用
ASP.NETサービスリファレンスは、WSDLというWebサービスの定義情報から.NETのクラスで利用するためのプロキシクラスを作成して、Webサービスを呼び出す方法です。
SilverlightでもVisual Studioを利用することで、簡単にプロキシクラスを作成してWebサービスを呼び出すことができます。
それでは、Visual Studioから新しいSilverlightアプリケーションを作成し、SilverlightをホストしているWebSiteにWebServiceを追加してみましょう。
1.プロジェクトの作成
まずはSilverlightとSilverlightをホストするためのASP.NETのプロジェクトを作成します。
Visual Studioメニューの[ファイル]-[新規作成]-[プロジェクト]から[Silverlight]を選択し、Silverlightアプリケーションを作成します。その際、プロジェクト名はSilverlightDemoとします。
[OK]ボタンをクリックすると、SilverlightをホストするためのASP.NETページを作成するか訪ねられるので、そのまま[OK]をクリックしてASP.NETページを作成してください。
2.Webサービスの作成
次にSilverlightから呼び出すためのWebサービスを作成します。
作成されたSilverlightDemo.Webプロジェクトを右クリックして[追加]-[新しい項目]から[WebService]を選択します。
Webサービスを作成すると、Visual Studioが自動生成したHello Worldという文字列を返却するHelloWorld
メソッドが定義されていますので、今回はこのサンプルを利用します。