I've worked through the introductions to WCF that Microsoft provides out on MSDN. That was a good starting point, but I did some shopping on Amazon in order to dig deeper. I'll be working through some of the exercises in these two books:
- Windows Communication Foundation 4 Step by Step - John Sharp
- Programming WCF Services: Mastering WCF and the Azure AppFabric Service Bus - Juval Lowy
So what is WCF? John Sharp provides a fairly detailed history in his book. I'll summarize it quickly: The World Wide Web was popularized while Microsoft was completing their work on Component Object Model (COM). First the web was just static pages. The second generation provided components could be downloaded to a local browser so that developers could create richer sites with more a layer of programmability. The third generation was based on Web Services. A Web Service is an application that runs on the computer hosting the webpage, not on the user's local machine. Web Services made it possible to receive information from applications running on the user machine, do some processing on the host machine, and then return a response to the user's local application. There was a need for developers on various platforms to have their applications communicate with one another. This lead to XML becoming the current common data format.
Developers still needed an agreed upon protocol for sending and receiving messages across the web. SOAP was the result. SOAP defines a number of things including:
- The format of a SOAP message
- How data should be encoded
- How to send messages
- How to handle replies to these messages
A web service can optionally have a Web Services Description Language (WSDL) document. This is XML that describes the messages that can be accepted by the Web Service, and the structure of the response back. Applications use the WSDL to determine how to communicate with the Web Service.
So where does WCF finally come in? It provides the framework for developers to create services that conform to all these web standards. It also supports Microsoft technologies like Enterprise Services. A developer can use WCF to create solutions that are independent from all the things under the hood that are connecting these web technologies together.
Windows Azure is a cloud based platform that can be used to host applications that will invoke a developer's services. It is optimized to leverage the features of WCF. I've been getting more and more email from Microsoft encouraging me to move some of my test applications over to Azure. I'm going to check it out this weekend.
No comments:
Post a Comment