Author: Zhinan Zhou, Robert Zhu, Pei Zheng & Baijian Yang
Publisher: Wrox, 2011
Pros: Presents similarities and differences between phones
Cons: Insufficient detail on Windows Phone 7
Reviewed by: Harry Fairhead
This is a very special book in the sense that it isn't quite like any other book on Windows Phone 7. You need to take careful note of the subtitle "for Android and iOS Developers". It introduces many WP7 facilities by comparing them to what you would find in the Android or iOS environment. However, in the main, it isn't particularly helpful in understanding how to create WP7 programs. To be honest creating WP7 programs is much easier than for Android or iOS. All you have to do is program in C# and use the Silverlight framework of controls and classes. The designers are good so you can mostly ignore XAML and simply create your UI interactively. Where the comparisons between WP7, Android and iOS really prove valuable is in pointing out the differences between the platforms. If you want to write a report outlining why your next app should be on WP7 or one of the other phones, then this book will provide a lot of your ammunition.
So the question is do you want a comparison of these major phone platforms? If you do then you will think a lot more of this book than if you simply want to learn to write WP7 apps.
The first chapter gets us off to a good start with an overview of WP7 and a side-by-side comparison of WP7, Android and iPhone. This is good but occationally I would have like more clarification of the differences. For example, in the comparison table for the three app stores it simply says "Testing on real devices" and for iOS and WP7 it says "Yes" but fro Android it says "No". I haven't any idea what that means.
Chapter 2 moves on to consider the application development environments and this is mostly about Visual Studio with some comparisons to the IDEs used with the other two phones. Chapter 3 is where the book gets to grips with actually building a WP7 application. However, the comparison with iOS and Android life cycles is much more interesting. At the end of the chapter there is a section how to make up for missing features in WP7 such as multi-tasking.
Chapter 4 is on the UI and after some basics this quickly becomes very advanced with a close look at the MVVM pattern. Chapter 5 considers application data storage, both local and cloud, with advice on data storage design considerations. Chapter 6 is on web services and push notification and again this is a fairly advanced topic for so early in a book. For me this is where the book started to become less interesting because it simply concentrates on WP7 and the example code started to get too long. Chapter 7 is on geolocation and maps and, while it does look at differences between the three phones, it mostly just tells you about Bing Maps.
Chapters 8 and 9 are simply introductions to graphics and multimedia on WP7. This is where XNA is introduced but there is no helpful comparison to what you can achieve on Android or iOS.
Chapter 10 looks at hardware use and here we return to the comparison between the platforms. The book closes with a quick look at security and, while it does compare the three platforms, it isn't in depth.
Overall this isn't a good beginner's introduction to programming WP7 and I'm not at all sure that the extra information about Android and iOS would help you convert from one to another. As I said in the introduction, this is an interesting book from the point of view of comparing the three platforms, but in this role it doesn't really go far enough. On the other hand, there isn't much available as an alternative. The amount of coverage of Android and iOS does tend to fall off as the book goes on. Its analysis of the comparison between the platforms is shallow in the sense that you are shown some code rather than given a discussion of the different approaches.
Don't buy this book if you simply want to learn WP7 programming, but you might want it as a guide to the three major phone environment - even if it isn't perfect in this role either.