.net column

.NET開発者のためのブログメディア

.NET FrameworkのWCFとは?C#で簡単なサービスを作成する方法

2020年07月31日

WCFとはWindows Communication Foundationの略称で、統合通信フレームワークを表します。WCFが導入される前までは、通信フレームワークに互換性がなく、通信方式を簡単には変えることができませんでした。WCFの登場後は、複数の通信フレームワークが統合されており、共通のアプローチで複数の通信方式を扱うことが可能となりました。ここでは、このWCFについて掘り下げていきたいと思います。

PG
WCF……統合通信フレームワークって聞いて、なんだか難しそうなイメージがあります。どうやって実装するのでしょうか?
PL
プログラミング初学者の方にはちょっと難しいかもしれませんね。WCFを理解するためには、基本的な概念は必ず押さえておく必要があります。まずはそこから確認していきましょう。

実行環境
・Visual Studio Community 2017

.NET Framework 3系で追加されたWCFとは

WCFは.NET Framework 3.0から新たに追加された、ネットワークを介して異なるコンピュータで動作するソフトウェア間で通信することができるフレームワークです。
WCFを理解するためには、まず知っておくべき基本的な概念が存在します。それが下記で説明する「ABC」です。

    • ■A: Address

どこで公開するか(Where)を定義します。URLがこれに該当します

    • ■B: Binding

どうやって公開するのか(How)を定義します。HTTPやTCPなどの通信プロトコルがこれに該当します

    • ■C: Contract

何を公開するのか(What)を定義します。商取引やゲームなどがこれに該当します

このABCの基本概念があるからこそ、通信方式とロジックを分離し、通信方式の切り替えをより簡単に行うことが可能になります。
WCFでは様々な種類の通信方式が利用できますが、多くの場面で見られるのがHTTPです。利用できる通信方式も確認しておきましょう。

通信方式概要相互運用性
TCPTCP/IPベースのテキスト/バイナリ通信が可能WCFコンポーネント
HTTPHTTPベースで、SOAPを使ったXML Web ServicesやRESTスタイルのWebサービス、JSONなどがサポートされているWebサービスをサポートするアプリケーション
名前付きパイプ
(Named Pipe)
名前付きパイプを使用する通信方式が可能同一マシン内のWCFコンポーネント同士
MSMQMicrosoft Message Queuingを使用する通信方式が可能WCFコンポーネント/MSMQをサポートするアプリケーション
Peer to PeerWindows Peer-to-Peer Networkingを使用する通信方式が可能WCFコンポーネント

簡単なWCFサービスを作成する方法

今回は、C#を使って簡単なWCFサービスを作成していきましょう。

    1. まず、Visual Studioから新しいプロジェクトを作成します。

新しいプロジェクトの作成

    1. プロジェクトが作成されました。プログラムは大きく分けてインターフェイス(IService1.cs)とインプリメンテーション(Service1.svc.cs)に分かれます。

以下のプログラムでは「NewProc」の箇所を新たに追加しました。それ以外は変更する必要はありません。

    1. それでは動作確認をしてみましょう。Service1.svc.csを開いてからデバッグを実行しましょう。以下の画面が表示されます。

動作確認

    1. クライアントのデモ環境です。今回追加した「NewProc」をダブルクリックします。

デモ環境

    1. 要求のnameの値に“テストクライアント”を設定します。起動ボタンを押下します。

nameを設定

    1. OKを押下します。

セキュリティ警告

    1. 応答の値に正しく値が設定されていることを確認できました。

値設定の結果

    1. 次に、IService1.csを開いてデバッグを実行します。以下の画面が表示されますので、Service1.svcのリンクをクリックします。

デバッグの結果

    1. http://localhost:54047/Service1.svc?wsdlの箇所はメモ帳などに保存しておきましょう。次項のサービスへのアクセス方法で使用します。

サービスのアクセス方法

作成したサービスへのアクセス

    1. クライアントとなる新しいプロジェクトを作成します。

Windowsフォームプロジェクトの作成

    1. プロジェクトが作成できたら、ソリューションエクスプローラーに表示されている参照を右クリックで、サービス参照の追加を行います。

追加するURLは保存しておいたhttp://localhost:54047/Service1.svc?wsdlです。

サービス参照の追加

    1. 次に簡単なWindows Formsアプリを作成します。

テキストボックスに値を設定し、ボタンを押下するとラベルに応答値が出力される仕組みです。今回は”テストクライアント”を入力値とします。

値を入力する

    1. ラベルに値が出力されることを確認できました。

値の出力

PG
簡単にWCFの利用ができるのですね!まずは試しに自分でもコーディングしてみます。
PL
そうですね。基本的な概念を理解することはとても大切なことです。それと同時にWCFを理解する一番の近道は、自分でコーディングしてみることです。

アプリケーションの通信に利用できるWCF

統合通信フレームワークと聞いて、難しい印象を持たれた方も多いかと思います。Windows Formsでクライアント画面を実装して、通信にはHTTPプロトコルを利用するアプリケーションを開発することは、多くの場面で求められるスキルではないでしょうか。勉強の際まずは、ここで解説したような簡単なWCFの作成方法を理解することから始めることをおすすめします。

>>>.NET Frameworkの案件を探すならFEnet .NET Navi


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)