The first release of the Composite UI Application Block took place in December of 2005, and the first release of the Smart Client Software Factory in July of 2006. This book might therefore seem to be appearing a bit late in the lifecycle of the software, at least compared to others that I've written. However, CAB and SCSF originally represented not so much a finished product as a living design pattern, and as such underwent rapid iteration and change as a result of the feedback of the earliest developers. The evolution of the WorkItem class from a use case to a scoping container, discussed in Chapter 3, is an example of this developer-driven change.
In this book, I've tried to bring you the most current thinking on the state of CAB and SCSF and their usage today. You will find it substantially different than the original articles and documentation. I wrote most of this book just prior to the May 2007 release of the Smart Client Software Factory. After its release, I had to scramble to bring the book up to date by our reserved press time. I didn't manage to get the disconnected operation blocks in, but I did cover its use of WPF. Because the May SCSF contains a smoother tool set, I've written all the code samples based on it. CAB strikes me as much closer to the beginning of its life than it is to the end, so it makes sense to go with the latest and best.
What about Acropolis, which has just released its first CTP version as we go to press? Does it make sense to learn and use CAB when Acropolis is on the way? I think it does. First, Acropolis is an evolutionary based on the principles of CAB, so studying and becoming fluent in the latter will help you transition to the former when the time comes. Second, Acropolis is a large and ambitious undertaking, for which a firm schedule has not yet been announced. I think that there's at least a good year and a half, possibly two years, before it gets into wide circulation. So again, studying and developing with CAB is a good thing to be doing today.
I wrote this book in a different style than my previous books for Microsoft Press. Instead of writing a high-level overview as I've done for those titles, (Understanding COM+ 1999, Introducing Microsoft .NET 2001, 2002, and 2003, and the Microsoft Platform Ahead, 2004), this book is a detailed, code-level book. It's organized in a workbook format, each two-page spread discussing a particular topic and usually a short code sample pertaining to the discussion. I've tried to break it down into bite-sized chunks to make it easier for you to swallow. I used this approach successfully in my books on COM (Prentice-Hall, 1996, 1997, and 1999), as a more accessible introduction than users could get from Brockschmidt's comprehensive tome.