If you've been paying attention at all, you know that Windows Communication Foundation
(more commonly known as WCF to cut down on needless overuse of electrons), formerly
"Indigo," which used to be a part of WinFX, is now a part of the recently re-christened
.NET Framework 3.0. Whatever it's name or ship vehicle, though, this software is
the latest communications technology from Redmond, replacing in all or part COM,
DCOM, Web Services, .NET Remoting, and WSE. It's also going through rapid beta evolutions
at the moment, with new CTP drops coming out on a fairly frequent basis as Microsoft
tries to nail down some sort of release plan. While I'm normally not a big fan of
reading books about beta software - for most developers, I think it's a waste of
time to bang your head on technology that is so obviously in flux - this is probably
one of the exceptions. If you're thinking about a project that includes communication
among distributed .NET components with a deployment date some time in the next few
years, it makes sense to start scouting out the landscape. I wouldn't try to internalize
all the little details right now, but I think it's about time to start understanding
the broad brush strokes.
This book, derived from labs developed by Microsoft to expose developers to WCF
technology, makes for a decent survey. If you've never experimented with ASP.NET
Web Services or remoting, you're likely to find it very heavy going - the explosion
of angle brackets and complex sets of interlocking classes is there right from the
beginning. There's no doubt that this is a complex technology, and that by trying
to cover all the bases Microsoft has left us with something difficult to learn.
But the authors do a decent job of breaking it up into relatively small chunks,
and then giving you cookbook code to demonstrate how each chunk works. The disadvantage
is that you may end up with something that you've built but don't understand at
all; some of the recipes lack a lot of explanatory material.
You'll find a wide variety of topics here, including security, reliable sessions
and transactions, COM+ and MSMQ integration, interoperability with WS-I and other
clients and services, custom transports and behaviors, peer communication, administration,
REST, and InfoCard (now WCS). The lab-oriented focus means that there's not a lot
of integration between the various chapters; on the other hand, this means you can
dip in most anywhere if there's a particular topic you need to understand. Everything
assumes you understand C# and XML, and that you're a reasonably experienced developer,
but not that you know the ins and outs of service-oriented programming.
Though the book is based on the January 2006 CTP of WCF, which is already outdated,
this doesn't make is useless (though it occasionally makes it confusing, where terminology
or capabilities have changed). The lead author is keeping a set of updates on his
weblog
as newer versions of the software are released. While this makes reading a choppier
experience, at least it means you're not wasting money on stuff that's out of date
with no fixes. Still, it's a hurdle to keep in mind - you'd best have a good reason
for wanting to know about WCF. If you do have such a reason, this is an excellent
place to start; learning from the guys who wrote the Microsoft labs is certainly
a good way to get a read on what the designers of WCF think is important to know.