Link for code samples used in the demo
Link for all dot net and sql server video tutorial playlists
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 or applications.
A web application running on one machine and a web service that this application is consuming is running on another machine.
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
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 tiert, 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?
Dot Net Remoting
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 formmated in binary over TCP protocol.
1. To satisfy the first client requirement we end up implementing an ASMX web service, and
2. To satisfy the second client requirement we end up implementing a remoting service
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.
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.
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 dicuss implementing a single WCF Service and configuring different end points to support different transport protocols and message formats.