The Windows Communication Foundation (or WCF) is an application programming interface (API) in .net framework for building connected, service oriented applications. WCF is designed in accordance with service oriented architecture principles to support distributed computing where services are consumed by consumers. Clients can consume multiple services and services can be consumed by multiple clients. These WCF services generally follow WSDL interface (Web Service Description Language) that any WCF client can consume these services. WCF implements many advanced web services such as WS-Addressing, WS-Reliable Messaging and WS-Security.
A WCF client connects to a WCF service via Endpoints. A service Endpoint has an address, a binding and a contract. Each service in WCF exposes its contract via one or more endpoints.
WCF behaviors represent functionality that is provided by WCF web services. Behaviors allow developer to create custom processing, transformation or inspection that is applied to message.
Contracts define various aspect of message system. There is several types of contracts in WCF such as Service contract, Data contract, Message contract etc.
The service runtime layer contains the behavior that occurs only during the actual operation of the service that is the runtime behavior of the service. WCF defines behavior such as Error behavior, instance behavior or metadata behavior etc.
The messaging layer is composed of channels. A channel is a component that processes a message in some way, for example, by authenticating a message. A set of channels is also known as a channel stack. Channels operate on messages and message headers. This is different from the service runtime layer, which is primarily concerned about processing the contents of message bodies.
Activation and Hosting
Finally a WCF service comes in its final state in which it comes in program format. Like other program, a service must be run in executable. This is known as self-hosted service.