Over a million developers have joined DZone.

Introduction to WCF


WCF is a platform for building distributed businesses and deploying services among various endpoints in Windows. WCF was initially called name “Indigo” and we can build service-oriented applications and provide interoperability.

Microsoft first released the WCF bundle with .NET Framework 3.0 in Visual Studio .NET 2008. It provides many useful features for developing services like hosting service instance management, asynchronous calls, reliability, transaction management, disconnected queued calls and security.

Microsoft was the second release of the WCF bundle with .NET Framework 3.5 in Visual Studio .NET 2008. This version supported additional tools and communication options.

Microsoft's third release of the WCF bundle came with .NET Framework 4.0 in Visual Studio.NET 2010. This version released a couple of features, like configuration changes, a few extensions, discovery and routers.

WCF also supports the Windows Azure Platform and supported operating systems such as Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 and later versions.

WCF is a combination of multiple existing .NET Technologies like ASMX, .NET Remoting, Enterprise Services, WSE and MSMQ.

Advantages of WCF

  • WCF provides better reliability and security compared to ASMX Web services. 
  • In WCF, there is no need to make much of a change to code to use the security model and alter the binding.
  • Small changes in the configuration file will match your requirements.
  • WCF provides interoperability between services.

Disadvantage of WCF

  • WCF does not support method overloading functions.

This article will help to understand WCF and respective versions in Visual Studio.


The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}