Support us .Net Basics C# SQL ASP.NET Aarvi MVC Slides C# Programs Subscribe Download

Part 1 - Introduction to WCF

In this video we will discuss
What is WCF 
Why should we use WCF

What is WCF?
WCF stands for Windows Communication Foundation and is part of .NET 3.0. WCF is Microsoft platform for building distributed and interoperable applications.

What is a distributed application?
In simple terms a distributed application, is an application where parts of it run on 2 or more computers. Distributed applications are also called as connected systems.

A web application running on one machine and a web service that this application is consuming is running on another machine.
Distributed System

An enterprise web application may have the following tiers, and each tier may be running on a different machine
1. Presentation tier
2. Business tier
3. Data Access tier
Connected System

Why build distributed applications?
There are several reasons for this
1. An enterprise application may need to use the services provided by other enterprises. For example an ecommerce application may be using Paypal service for payments.
2. For better scalability. An enterprise web application may have Presentation tier, Business tier, and Data Access tier, and each tier may be running on a different machine.

What is an interoperable application?
An application that can communicate with any other application that is built on any platform and using any programming language is called as an interoperable application. Web services are interoperable, where as .NET remoting services are not.

Web services can 
communicate with any application built on any platform, where as a .NET remoting service can be consumed only by a .net application.

What technology choices did we have before WCF to build distributed applications?
Enterprise Services
Dot Net Remoting
Web Services

Why should we use WCF?
Let's take this scenario
We have 2 clients and we need to implement a service a for them. 
1. The first client is using a Java application to interact with our service, so for interoperability this client wants messages to be in XML format and the protocol to be HTTP.
2. The second client uses .NET, so for better performance this client wants messages formatted in binary over TCP protocol.

Without WCF
1. To satisfy the first client requirement we end up implementing an ASMX web service, and web service example

2. To satisfy the second client requirement we end up implementing a remoting service
Dot Net Remoting Example

These are 2 different technologies, and have complete different programming models. So the developers have to learn different technologies. 

So to unify and bring all these technologies under one roof Microsoft has come up with a single programming model that is called as WCF - Windows Communication Foundation.

With WCF,
You implement one service and we can configure as many end points as want to support all the client needs. To support the above 2 client requirements, we would configure 2 end points. In the endpoint configuration we can specify the protocols and message formats that we want to use.
WCF Example

In Part 2, we will discuss implementing 
1. A web service to exchange messages in XML format using HTTP protocol for interoperability.
2. A remoting service to exchange messages in binary format using TCP protocol for performance.
Along the way, we will get a feel of how different these technologies are.

In Part 3, we will discuss implementing a single WCF Service and configuring different end points to support different transport protocols and message formats.

wcf tutorial


  1. Very good article about WCF. Thank You

  2. An unhandled exception of type 'System.InvalidOperationException' occurred in System.ServiceModel.dll

    Additional information: A binding instance has already been associated to listen URI 'http://localhost:8080/HostWCFservice'. If two endpoints want to share the same ListenUri, they must also share the same binding object instance. The two conflicting endpoints were either specified in AddServiceEndpoint() calls, in a config file, or a combination of AddServiceEndpoint() and config. App not host so how to fix?

  3. Helllo Sir,

    your tutorials are very useful for fresher as well as experience professionals. Thanks for your hard work for creating this videos.
    Please create videos for WPF that helps the candidates looking job in this technology.


It would be great if you can help share these free resources