WCF(Windows Communication Foundation)チュートリアル 前編
Vista時代のプログラミングモデル .NET Framework 3.0入門 (3)
ダウンロード サンプルファイル (20.3 KB)
WCFを使ったサンプルの実装 1
では早速WCFを使った通信のサンプルを実装してみましょう。
サンプル概要
今回は先ほど上げた会員情報を扱うサービスのサンプルを実装します。
サービス提供側に2つのプロジェクト、クライアント側に1つのプロジェクトを作成します。
なお、サービス提供側とクライアント側は別ソリューションとして作成します。
| プロジェクト | 概要 |
| WCFMemberServiceLibrary | 会員情報サービスのコントラクト定義および実装 |
| WCFMemberServiceGUI | 会員情報サービスをホスティングするWindowsアプリケーション。サービス提供のための「ABC」はこのプロジェクトのapp.configに定義する |
| WCFSampleClient | 会員情報サービスを使用するクライアントアプリケーション。サービス利用のための「ABC」はこのプロジェクトのapp.configに定義する |

最初は通信方式としてWebサービスBasic-Profileを使用して実装し、その後TCPへと切り替えてみましょう。
- アプリケーションによるホスティング
- IISによるホスティング
WCFMemberServiceLibraryプロジェクトの実装
まず、会員情報サービスを実装する「WCFMemberServiceLibrary」プロジェクトから作成しましょう。
Visual Studio 2005を起動し、新しいプロジェクトを作成します。Visual Studio 2005 Extensions for WCFが正しくインストールされていれば、プロジェクトの種類として[.NET Framework 3.0]というカテゴリが追加されているはずです。今回は[WCF Service Library(WCF)]を選択し、「WCFMemberServiceLibrary」という名前でプロジェクトを作成します。
新しいプロジェクトを作成すると、自動的に「class1.cs」というファイルが作成され、WCFサービスのひな型が定義されます。このファイルのコメントには、WCFサービスを完成させるまでの手順が記されていますので、興味のある方は確認してみてください(ただし記述内容は英語です)。
今回はこのひな型を削除し、新たなコントラクト定義を追加しましょう。Visual Studio 2005メニューより[プロジェクト]-[新しい項目の追加]を実行し、[WCF Service]を選択して「SampleService.cs」を作成します。
このファイルにサービスを実装していきます。サービス・コントラクトは先ほどのISampleServiceインターフェイスを実装します。同様にデータ・コントラクトはMemberクラスを使用します。実際の処理はISampleServiceインターフェイスを実装したSampleServiceクラスに記述します。
public class SampleService : ISampleService { static Dictionary<int, Member> members = new Dictionary<int, Member>(); public void addMember(Member member) { members[member.Id] = member; } public Member getMember(int memberId) { return members[memberId]; } }
ここでは会員情報サービスの簡易な実装としてDictionaryクラスを使い、addMemberメソッドとgetMemberメソッドを実装しています。会員IDをキーに会員情報の格納・取得を行っています。詳細はサンプルをダウンロードしてソースコード(WCFMemberServiceLibrary/SampleService.cs)をご覧ください。
これでサービス本体の実装は完成です。いったんビルドしておきましょう。
この記事は参考になりましたか?
- Vista時代のプログラミングモデル .NET Framework 3.0入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 土井 毅(ドイ ツヨシ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


