Saturday, March 10, 2007

What is the Windows Communication Foundation?

Depending on who you talk to or what you’re reading, you’ll almost always get different answers.

  • Yes, it does facilitate interoperable communication between client and server.
  • Yes, it is does replace the need to use traditional web-services (.ASMX).
  • Yes, it does consolidate the big communication protocols (TCP, HTTP, MSMQ, Named-Pipes, WS, Basic) into a single programming model.
  • Yes, it is an SDK for developing and deploying services on Windows.

It’s all of those things, but most importantly it provides boundaries, contexts, and a consistent extensible programming model to do all of the above and more.

Without boundaries you’re not going to get:

  • Process isolation
  • Fault isolation
  • Security boundaries
  • Transaction boundaries
  • Timeline boundaries
  • Platform abstraction
  • Technology abstraction


You also get to use real interfaces, which tell you where your service is located, how to communicate with it, and what it can do. This becomes more important when building distributed systems. Because now, your program just becomes a model for how your system needs to work and the actual processing can be abstracted out. In other words, your program becomes a workflow with abstract pluggable processes.

Since the implementation details of the processes are abstracted away behind their interface, it means they can be developed and deployed independently from the application.

Similarly, the workflow can be changed independently from the processes, and this provides a very clean and extensible environment in which to build applications.

Labels: , ,

0 Comments:

Post a Comment

<< Home