.net column

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

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

 

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です。利用できる通信方式も確認しておきましょう。

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

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

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

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

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

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

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

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

    動作確認

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

    デモ環境

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

    nameを設定

  6. OKを押下します。

    セキュリティ警告

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

    値設定の結果

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

    デバッグの結果

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

    サービスのアクセス方法

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

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

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

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

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

    サービス参照の追加

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

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

    値を入力する

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

    値の出力

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

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

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

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


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

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

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

Search

Popular

reccomended

Categories

Tags