Windows Communication Foundation (WCF) is an SDK for developing and deploying services on Windows.and it (Code named Indigo) is a programming platform and runtime system for building, configuring and deploying network-distributed services.WCF provides a runtime environment for your services, enabling you to expose CLR types as services, and to consume other services as CLR types.
It is the latest service oriented technology; Interoperability is the fundamental characteristics of WCF. Windows Communication Foundation (WCF) is unified programming model provided in .Net Framework 3.0. WCF is a combined features of Web Service, Remoting, MSMQ and COM+. WCF provides a common platform for all .NET communication.
Different technology combined to form WCF.
WCF is part of .NET 3.0 and requires .NET 2.0, so it can only run on operation systems that support it. Presently this list consists of Windows Vista (client and server), Windows XP SP2, and Windows Server 2003 SP1 or their later versions.
- Its made of a lot of different components, so you can create new components for security, transport, authentication.
- In WCF, there is no need to make much change in code for implementing the security model and changing the binding. Small changes in the configuration will make your requirements.
- Its faster than ASMX.
- Supports Scaling/Load Balancing.
- WCF has integrated logging mechanism, changing the configuration file settings will provide this functionality. In other technology developer has to write the code.
- Its Interoperability, for java, and more.
- WCF is interoperable with other services when compared to .Net Remoting,where the client and service have to be .Net
- WCF services provide better reliability and security in compared to ASMX web services.
A drawback would be that, WCF is Microsoft's implementation of SOA and hence its APIs are solely controlled by MS which makes interoperability a bit difficult. Also, to deploy WCF apps, you will need more underlying hardware resources on the platform on which the WCF applications will be running, since there is an additional layer of abstraction to deal with.