I have been pretty heavy into WF for almost 2 years now and really thought I had it mastered. So when I bought a Step by Step book, I really just wanted it to help me teach the concepts. B/c workflow is a new way of thinking about programming, I'm always looking for new/better ways to teach it.
What I got instead of a beginner's book teaching worfklow foundation was a big slice of humble pie. Why do I say that? B/c this book is nothing short of amazing. It's unbelievably well written. There is no stone unturned, and I mean no stone unturned whatsoever. The examples are compelling and are very real world. In fact, they show beyond any shadow of a doubt that Workflow foundation can be used all over the place - essentially anywhere you need a workflow. While that last statement may seem strange, it really isn't. THe hardest thing I've seen most people wrestle with learning WF is realizing that's it's not just applicable in some external rare/specific circumstances. You can (and should) use it anywhere you have a series of steps that must be executed together.
One critic knocked the book b/c the author takes off on so many digressions code wise. How anyone could level this charge against the author is beyond me - in fact, it's borderline heresy. The digressions (if you want to call them that - I think they're better described as "Real World" uses) are what makes this book shine.
One application shows a mock stock trading system that runs Monte-Carlo simulations on the stocks. It allows you to add/remove stocks and run the simulations repeatedly. This is something that most folks would never think to do with WF, yet his presentation of it is so elegant and intuitive that I challenge anyone who's honestly worked through his examples to say that it didn't change the way they thought of WF afterward.
In another case, to show State Machines, he walks through a sample Soda Machine. Not only is it a clever way of implementing a State Machine, it is as perfect of an example as I think you could come up with.
Although I'm hard pressed to say I had a favorite chapter, I'd have to cite Chapter 13 as a favorite just b/c, well, it really explains in depth how Microsoft uses Workflow Actvities all over the place in products like Microsoft Speech Server, SSIS or Biztalk. He doesn't talk about those per se, but if you've used them, you no doubt are familiar with the workflow designers. Each of them has its own set of custom activities. He walks throug buidling a FTP component that is reminiscent of the one that SSIS uses. If he just stopped at building the activity itself, no one could say he skimped on the lesson. But he continues, walking you through building a ActivityValidator and then building full UI support for it as a Toolbox item. When you're done, you'll see something that looks and feels almost identical to the FTP component in SSIS from start to finish. No detail is left uncovered. And at that point, every activity you've used in any one of those products will look different to you - in the sense that you'll probably be able to reverse engineer them in your head. If not, I think you'd definitely be able to build one of your own for any given activity you've used in those products.
It's really hard to fathom how much thought the author put into coming up with the examples. But he was dead set on making sure that you understood exactly what you can do with workflow and how many different scenarios it is applicable to. Throw in some really in-depth coverage, a really compelling writing style and an uncanny ability to cover the tiniest of nuances all the while being appropriate to both beginners and experts and you have exactly what I described at the onset - a Masterpiece.
I really don't think there's a single thing in this book I could take issue with or say could be done better. And that's coming from someone who teaches WF and pretty much has lived and breathed it since it's earliest bits were released. I wanted something to help me teach WF and I got way more than I bargained for.
less
0 comments
Post a comment