Author: Ashish Ghoda
Audience: Existing C# programmers
Reviewer: Ian Elliot
Windows 8 or specifically WinRT apps are ideal candidates for MVVM because, using XAML or HTML allows you to separate View from everything else very easily. This book offers to reveal the pattern for you.
Chapter 1 is an introduction to Windows Store app development using Visual Studio. There is a very short introduction to the View, ViewModel, Model class, but don't blink because you might miss it as it's just page and a half. The chapter also introduces the single example that runs through the entire book. In fact the best way to describe the book is to say that it is an explanation of this example and its development using the MVVM pattern.
Chatper 2 explains the process of implementing the View and you will see a lot of XAML code. No drag-and-drop designer for this UI its all hand coded. It is all very detailed and it is difficult to see any general ideas.
Chapter 3 moves on logically to developing the Model. No database was harmed in the making of this data retrieval system only the Windows local storage classes and serialization are used.
Finally we reach the ViewModel in chapter 4. This introduces the idea of inversion of control using the Metroloc container from CodePlex. Be prepared for lots of C# code and more XAML. At the end I couldn't help think that coding such a simple app shouldn't be this complicated but the benefits of using a pattern like MVVM really only start to be felt when the application gets a bit bigger. With this example you can't but help notice the overhead involved in structuring things in this way. The book really doesn't go in for discussing the philosophy of the approach, so if you aren't already sold on the idea you might be left wondering why it's all so complicated.
If you are a C# programmer then it is a reasonable example of creating an app using XAML, but only if you are prepared to work through the example for real. This book doesn't have a lot of value if you plan to just read it, especially if you are going to just skim read the code. It is a detailed rather than overview sort of book and won't suit anyone who wants to have things mostly explained rather than just shown.