Developers Guide to Microsoft Prism 4: Building Modular MVVM Applications with Windows Presentation Foundation and Microsoft Silverlight (Patterns & Practices) by Bob Brumfield, Geoff Cox, David Hill, Brian Noyes, Michael Puleio and Karl Shifflett.
I suppose the best place to start is to say don’t buy this book like I did. Read it or on MSDN or download it from Codeplex. Both options are free. However, if you are the traditional sort and prefer to have a physical book in your hand, it is available from Amazon and other distributors. I personally opted for the Kindle version, which was very convenient, but had I known about the free PFD version at the time, I think I would have saved myself the $16 I paid for it. Unfortunately, I didn’t know anything about Prism when I first came across this book and decided to buy it as a getting started guide. Even though I could have done better cost-wise, the decision was well worth the expense. The Developers Guide to Microsoft Prism 4 is probably the best source of information available on the subject and you will find yourself refering to it again and again as you cut your teeth in Prism development.
Generally, I don’t like books written by three or more authors and this book has six. Naturally I was sceptical from the outset. Fortunately, the authors of this book are all-stars in this arena so lack of a single voice is more than offset by the wealth of insight and content. More importantly, it is essential to understand that this book was written as both a stand-alone book and as product documentation. When you download the Prism product, you get the full book in the form of Compiled HTML Help files (.chm). The Prism download also includes two reference implementions (RI’s) and ten topic specific Quickstarts. These Visual Studio projects demonstrate the capabilities of Prism and are refered to throughout the book. So although you can benefit from referencing the book on a case by case basis or by reading it from cover to cover in isolation, you will definitely get the most benefit by reading the book while studying the relevant RI’s and Quickstarts as you progress through the chapters. This was how the material was meant to be consumed and if you ignore the RI’s and Quickstarts, you may find yourself frustrated by the apparent lack of detail or overwhelmed by the terminology. I personally tried to read the book as a stand-alone book but lost interest halfway though. I came back six months later to finish it, but discovered that I had already forgotten what I had previously read. I finished it anyway and then read most of it again to fill in the gaps. At that point I discovered the importance of the RI’s and Quickstarts and began studying them. This is when things started to click for me.
On the downside, the book is not for the novice. Prism, as a product, is a standardized implementation of several best practices that have proven to be effective solutions for common .NET architectural problems like modularity, UI composition, unit testing, navigation and multi-platform targeting. As such, understanding Prism requires the reader to have at least a basic understanding of technologies like C#, Linq, lambda expressions, MVVM, XAML, XML, design patterns, etc. Fortunately, the material is clear enough for most readers to be able to learn as they go as long as they are willing to dig into the links provided at the end of every chapter. Nevertheless, some solid WPF and/or Silverlight experience will prove invaluable when trying to take on Prism.