- Exploring the Windows Communication Foundation (WCF)
- Windows Communication Foundation: The Official Definition
- Building Solutions Using the Windows Communication Foundation
- Running Windows Communication Foundation Solutions
- Next Steps
Windows Communication Foundation: The Official Definition
Microsoft has a succinct (albeit somewhat confusing) explanation for what the Windows Communication Foundation will do:
Foundation is Microsoft’s unified programming model for building service-oriented applications with managed code. It extends the .NET Framework to enable developers to build secure and reliable transacted web services that integrate across platforms and interoperate with existing investments. Windows Communication Foundation combines and extends the capabilities of existing Microsoft distributed systems technologies, including Enterprise Services, System.Messaging, Microsoft .NET Remoting, ASMX, and WSE to deliver a unified development experience across multiple axes, including distance (cross-process, cross-machine, cross-subnet, cross-intranet, cross-Internet), topologies (farms, fire-walled, content-routed, dynamic), hosts (ASP.NET, EXE, Windows Presentation Foundation, Windows Forms, NT Service, COM+), protocols (TCP, HTTP, cross-process, custom), and security models (SAML, Kerberos, X509, username/password, custom).
If you’re like me, after you read this for the first time you probably said something like, "Well, I’m reading the words but not getting the message." Let’s break down what Microsoft is trying to say.
The first message is this: unified programming model. This is huge. If you’ve been working through the various communication models Microsoft has thrown at us over the last 10+ years, you know that there’s nothing "unified" about how you develop solutions. It appears that almost every environment for which you develop solutions has its own set of protocols.
The second message you need to get from Microsoft’s statement is this: service-oriented. Putting on my "enterprise architect" hat, I see this as a good thing. There’s no doubt that the systems being developed and built for organizations today are more complex. Even small companies require complex solutions. A great example is the policy administration system—necessarily complex because that’s just the nature of the beast. However, you want to expose communication points in the system. This may consist of posting data to the system, extracting data, or some other solution where two or more technologies need to connect. What you’re experiencing is multiple ways in which you need to have different systems communicate data.
You may think of web services here, but the reality is that this is only one service model. There are many.
The third key to take away from Microsoft’s description of the WCF is this: ability to unify and extend existing communication methods. The types of methods that are being highlighted are very broad: communicating across local, wide area, and global networks; easier communication between different programming environments; and easier communication between disparate security systems.
The bottom line is simple: The Windows Communication Foundation is designed to allow systems to communicate with each other. And here’s the kicker: These systems don’t need to be Windows solutions. Solutions built on the WCF can broadcast messages to Linux machines or be built to consume web services from J2EE solutions.