Before I get into showing you how to set up some basic Windows Communication Foundation services, I want to briefly highlight what WCF is, and why it was created in the first place.
Why create Window Communication Foundation
I will go on record here and say that I have never used the following technologies: DCOM/ES/COM+, .Net Remoting, and MSMQ but if you were programming in the days before the nice and easy frameworks like WCF, you are probably familiar with using them as a means of communication between different computers. In essence each of these technologies offered a way to send and receive "message" to other nodes on a network. The inherent problem was that each had their own unique programming interface, and even worse than that, each could only talk to other nodes that were Microsoft devices.
In todays world it is harder and harder to get away with just offering up something on one platform or another. Consumers don't give a crap what goes on in the 1's and 0's, they just want to be able to use something with what they have.
WCF was created to solve this problem.
So what is WCF?
To take the definition straight from the guys and Microsoft (found here):
Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Using WCF, you can send data as asynchronous messages from one service endpoint to another. A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. An endpoint can be a client of a service that requests data from a service endpoint. The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data
A few of the key features to call out with WCF:
This basically means that it is not tied down to working with just Microsoft devices
Always important, and Window Communication Foundations come chock full of security features and is easy to integrate with SSL
AJAX and REST Support
Welcome to 2012, if you are not using ajax for SOMETHING and the web, you are doing the internet wrong and you should kindly stop. REST support is also very important since it is more and more becoming the preferred method of communication
If there is something you need that is not there, build it and you are good to go.
The feature list goes on, I just called these ones out because they are universally important to anyone who is thinking about creating a few web services to accomplish something. Next I will go into creating a very basic WCF service, and see how we can talk to it using the built in Visual Studio tools.