Thursday, June 11, 2009

Windows Communication Foundation

What is WCF?

WCF (Indigo was the code name for WCF) is a unification of .NET framework communication technologies. It is a unification technology, which unites the following technologies:
• NET remoting
• Web services
• COM+

WCF is based on SOA. Windows Communication Foundation is Microsoft infrastructure for Service Oriented architecture. Because WCF is part of the .NET Framework, applications that use WCF can be developed in any programming language that can target the .NET runtime.

What are the main components of WCF Service?

A WCF Service is composed of three parts/components:
1. Service class: implements the service to be provided,
2. Hosting environment: to host the service, and
3. End point: one or more endpoints to which clients will connect.

All communications with the WCF service will happen via the endpoints. The endpoints specify a Contract that defines which methods of the Service class will be accessible via the endpoint; each endpoint may expose a different set of methods. The endpoints also define a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.

Note: Web Services and Services are not identical. One main difference is Web Services use HTTP protocol, but Services can use any protocol and this is an important difference.

What are the advantages of WCF?

Windows Communication Foundation has some important enhancements in comparison with preceding technologies.

· It merges all older separate technologies in one place and allows you to do things easier.
· It has rich communication capabilities.
· It comes with many powerful and ready to use enterprise features.
· It can be integrated with other technologies and has great interoperability.


WCF’s single programming model unifies the capabilities in ASMX, WSE, Remoting, COM+, and MSMQ; therefore developers need to learn only one programming model.

In addition, WCF services now offer more design flexibility by supporting architecture such as Representational State Transfer (REST), JavaScript Object Notation (JSON), and Plain Old XML (POX) encoding.