WCF Services: Overview

Description Article
Description

What is it

WCF is a technology that provides a unified programming model used to build SOA-oriented applications that can exchange SOAP messages between two endpoints over any transport protocol (HTTP, TCP, MSMQ, NPIPES) and later extended to work with other protocols.

WCF was built to replace all the existing distributed application technologies from Microsoft (e.g. ASMX web services, MSMQ, .NET Remoting, etc).

An end point can be connected over different communication techniques through configuration.

ReST Support

ReST features where added on .NET framework 3.5 enabling WCF with restfull behaviour in order to send non-SOAP messages using HTTP as transport protocol.

Concepts

Service Class
A service class implemented in any CLR-based language and exposing at least one method to be consumed by a Client.

Endpoint
Communication portal to achieve used by the Client to communicate with the operations exposed by the service and classified by three distinct elements:

  • Address (defines the WHERE): The Uri to invoke that identifies the location of the service
  • Binding (defines the HOW): Defines how the service can be accessed and communication is achived (e.g. what transport protocol, encoding and security to use)
  • Service Contract (defines the WHAT): Defines what is exposed to the Client

Hosting Environment

A WCF service requires a managed process and therefore can be hosted where a .NET domain exists, namelly:

Hosting in a web server:

  • IIS 6.0 (ASP.NET application that only supports HTTP)
  • IIS 7.0 (Windows Process Activation Service that supports HTTP, TCP, NamedPipes and MSMQ)

Hosting in a managed application (usual name: Self hosting):

  • Windows Service application (NT Service)
  • Windows Form application
  • Windows Console application

Metadata
Metadata exchange endpoint to access service metadata used to generate a proxy by the Client and consume the service.