I was looking forward to this book being published as there really isn’t very much documentation available for either the Composite UI Application Block or the Smart Client Software Factory. Microsoft’s own documentation is quite weak, and to use these technologies you find yourself repeatedly referring to the code itself or community blogs and websites.
However I have to say Platt’s book isn’t the answer to these problems. Firstly it’s very short. It’s true that there are nearly 200 pages, but there’s a lot of white space, big diagrams and padding throughout the book. The CAB/SCSF is now quite a large and complex piece of software and inevitably Platt can only skim the surface of the technology in such a short book.
Secondly Platt makes no real attempt to explain some of the core concepts behind the CAB/SCSF. For example, the CAB uses dependency injection and DI containers heavily, and many Microsoft developers will not have met these concepts before. Platt makes no real attempt to explain what these things are and why we might want to use them in a smart client application. This is also a criticism that can be levelled at the Microsoft documentation. Platt is better on why we might use the CAB to achieve loose coupling between parts (‘modules’) of a smart client application. But in general developers coming to the CAB struggle with the concepts more than the code and Platt has focused heavily on the code.
Thirdly Platt is quite selective on which parts of the framework he covers. For example there is a chapter on the Action Catalog, which is quite an esoteric part of the SCSF technology. However there’s no real discussion of WorkItem State, which is a much more core concept and causes a lot of confusion. The Action Catalog is just one of several new services in the latest SCSF, and Platt doesn’t discuss the others in the same detail (e.g. WorkspaceLocator, EntityTranslator).
On the plus side the book is an easy read, and it does have a strong introduction where in 30-odd pages Platt gives a good initial overview of the subject. On the subjects he does cover Platt is factually accurate and informative. Having read the book I do feel I have a better understanding of how the technology works.
In the absence of any real alternative, and given that it is quite cheap, this book is worth purchasing for a quick read to give you a selective overview of the subject. But it is too short and unfortunately it’s far from being the definitive guide I was hoping for.