| Windows Communication Foundation (WCF) | |
|---|---|
| 原作者 | マイクロソフト |
| 開発者 | .NET Foundation |
| リリース | 2006年11月 21日 ( 2006-11-21 ) |
| 安定放出 | v3.4.0 / 2022 年 8 月 18 日 ( 2022-08-18 ) |
| 執筆 | C# |
| オペレーティング·システム | Linux、macOS、Windows |
| プラットフォーム | .NET Framework、.NET |
| 前任者 | ウェブサービス機能強化 |
| タイプ | ソフトウェアフレームワーク |
| ライセンス | MITライセンス |
| Webサイト | docs.microsoft.com/en-us/dotnet/framework/wcf/index |
| リポジトリ | github.com/dotnet/wcf |
Windows Communication Foundation ( WCF ) は、以前はIndigoとして知られていましたが、 .NET Frameworkの無料のオープンソースランタイムおよびAPIセットであり、接続されたサービス指向アプリケーションを構築するためのものです。[ 1 ] [ 2 ]
2016年にリリースされた.NET Core 1.0では、WCFサーバーサイドコードはサポートされていませんでした。WCFサポートは、2022年に.NET Core 3.1、.NET 5、および.NET 6のサポートとともにプラットフォームに追加されました。[ 3 ]

WCF は、サービス指向アーキテクチャ(SOA)の実装と展開によく使用されるツールです。サービス指向アーキテクチャの原則に基づいて設計されており、サービスがリモートのコンシューマーを持つ分散コンピューティングをサポートします。クライアントは複数のサービスを利用でき、サービスは複数のクライアントによって利用できます。サービス同士は疎結合です。サービスには通常、WSDLインターフェイス(Web サービス記述言語) があり、WCF クライアントはサービスがホストされているプラットフォームに関係なく、このインターフェイスを使用してサービスを利用できます。WCF は、WS-Addressing、WS-ReliableMessaging、WS-Securityなど、多くの高度な Web サービス (WS) 標準を実装しています。.NET Framework 4.0のリリースに伴い、WCF はRSSシンジケーション サービス、WS-Discovery 、ルーティング、およびRESTサービスのサポート強化も提供します。
WCFクライアントはエンドポイントを介してWCFサービスに接続します。各サービスは、1つ以上のエンドポイントを介してコントラクトを公開します。エンドポイントには、アドレス(エンドポイントにアクセスできるURL)と、データの転送方法を指定するバインディングプロパティがあります。
アドレス/バインディング/コントラクトを覚えるには、「ABC」というニーモニックを使用できます。バインディングは、サービスへのアクセスに使用される通信プロトコル、セキュリティ メカニズムを使用するかどうかなどを指定します。WCF には、 SOAP over HTTP、SOAP over TCP、SOAP over Message Queues など、最も一般的な通信プロトコル用の事前定義済みバインディングが含まれています。WCF エンドポイントとクライアント間のやり取りは、SOAP エンベロープを使用して行われます。SOAP エンベロープはシンプルな XML 形式であるため、WCF はプラットフォームに依存しません。クライアントがエンドポイント経由でサービスにアクセスする場合、コントラクトを知っているだけでなく、エンドポイントで指定されたバインディングにも従う必要があります。したがって、クライアントとサーバーの両方が互換性のあるエンドポイントを持っている必要があります。
2007年11月に.NET Framework 3.5がリリースされた際、マイクロソフトはWCFにJSONシリアル化フォーマットのサポートを追加するエンコーダーをリリースしました。 [ 4 ]
動作とは、サービスまたはクライアントの機能を変更または拡張するタイプのことです。動作を使用すると、開発者はメッセージの送受信時に適用されるカスタム処理、変換、または検査を作成できます。動作の使用例をいくつか挙げます。
ビヘイビアはIServiceBehavior、サービス拡張機能のインターフェース、IEndpointBehaviorエンドポイントのインターフェース、IContractBehaviorサービス契約のインターフェース、またはIOperationBehavior操作のインターフェースを実装します。サービスビヘイビアは、単一の操作に固有の処理ではなく、サービス全体にわたるメッセージ処理に使用されます。
WCF は、同じ Windows マシンで実行されている WCF アプリケーション、または別の Windows マシンで実行されている WCF、あるいはWindows や他のオペレーティングシステムで実行されているJavaなどのプラットフォーム上に構築された標準 Web サービスとの相互運用性をサポートしています。SOAP に加えて、WCF 4 は HTTP またはHTTPSを介した外部通信用に非 SOAP XML、RSS、JSON、およびバイナリ形式をサポートしています。[ 6 ]