最後にクライアント側のコンフィグレーション・ファイル(App.config)を用意する。下記のようなコンフィグレーションの内容を記述する。サービス・サイドとの違いは、クライアントでは<client>タグ内にエンドポイントを定義する点である。そのほかはほぼサービス・サイドと同様の内容を記述する。用--><endpointname="Endpoint1"address="http://localhost:2314/WinFxService1/Service.svc"binding="wsHttpBinding"contract="IMyService"></endpoint></client></system.serviceModel></configuration>クライアント側のコンフィグレーション・ファイル(App.config)この段階でクライアントの準備が完了した。それではサービスを実行させた後にクライアントを実行してみよう。すると下記のようにサービスからメッセージが送信され、それがフォーム上にバインドされて表示されるのが分かる*。テスト実行時は先に作成したサービス・サイドも起動しておく必要があるクライアント側サンプル・プログラムの実行画面ちなみにここでは、wsHttpBindingを使用しているため、メッセージ・レベル・セキュリティがデフォルトでONとなっており、メッセージは署名暗号化されていることがトレースを取れば確認できる。今度は開発環境上でWCFのサービスを参照し、サービス・プロキシやクライアント・サイド・コンフィグレーションを自動作成して作業手順を短縮する方法をざっと見ていこう。自動生成の場合の具体的な手順は以下のとおりとなる。2005の参照設定にWCFサービスを参照してプロキシやコンフィグレーション・ファイルを自動生成する機能が追加される。Reference]というメニュー項目が参照設定に追加される。Reference]を実際に選択すると次の画面のダイアログが表示される。Reference]からWCFサービスへの参照を設定すると(当然ながらサービス側のWSDLを取得するため、サービス自体が事前に起動している必要がある)、サービスにアクセスするためのプロキシ・コードが次の画面のように生成される。自動生成されたプロキシのコード中にサービス・コントラクト、オペレーション・コントラクト、データ・コントラクト(あるいはメッセージ・コントラクトなど)の定義が生成されているのが確認できる。次の画面のように、クライアント・サイドのコンフィグレーションも自動生成されているのが確認できる。最後にクライアント・サイドの実装コードであるが、ここでは先ほどのチャネル・ファクトリ(ChannelFactory)を使用したサービス呼び出しが単純化されている。オブジェクトへのデータバインドはプロキシ内のProductオブジェクトをバインドするように作成しておく。下記usingディレクティブも追加しておく。WCFサービスを参照してプロキシやコンフィグレーション・ファイルを自動生成する機能の実体は、Svcutil.exeという名のコマンドである。このコマンドは単独で使用することも可能で、例えば下記のようなコマンドを実行すると、MyProxy.csという名前でプロキシとクライアント・サイドのコンフィグレーション・ファイルが指定したWSDLを基に生成される。SDKs\Windows\v1.0\Bin」に格納されている。【コラム】SvcConfigEditorとはWCFのコンフィグレーション・ファイルを、テキスト・エディタでダイレクトにメンテナンスするのは大変である。そこで、SvcConfigEditorというGUIツールが提供されている。SvcConfigEditorの画面このツールを使用することでコンフィグレーション・ファイルの内容を比較的容易にメンテナンスすることが可能である。今回は実際のWCFプログラミングの手順を見てきた。WCFのプログラミングあるいはコンフィグレーションに必要なA/B/Cといった概念がある程度具体的にご理解いただけたのではないだろうか。次回以降では、WCFのアーキテクチャを概観し、WS-*を使用したセキュアでリライアブルでトランザクティッドな分散アプリケーションの構築に関して見ていく予定である。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。