Book Review: Professional Microsoft Smartphone Programming

A collegue of mine, Pei Zheng, who works in OEM Services for Mobility at Microsoft recently dropped off a new book he wrote with Baijian Yang and Lionel Ni.  It's titled "Professional Microsoft Smartphone Progamming" and it's published by Wiley Publishing under the Wrox imprint.  This may very well be the first book written about developing for the Windows Mobile Smartphone platform with the .NET Compact Framework 2.0.

I appreciate how the book tackles issues surrounding Smartphone-specific topics like UI design and flow.  The authors discuss things like how to create and navigate a multi-form app as well as how to deal with things like T9 input mode, keyboard input and working with soft keys. 

The authors do a great job on the device and application security front by covering topics like application signing, privileged and unprivileged apps, trusted apps, and security policies.  They even walk the reader through the certificate management lifecycle including obtaining certificates, signing apps, and then using XML provisioning files to provision a device.  The book then goes on to provide in-depth coverage of data encryption on the device with algorithms like AES 256 and data protection over the wire with TLS.

One of my favorite chapters goes after Performance issues with guns blazing!  They point to the .NET Compact Framework Performance Counters which can now be read in real-time with the Remote Performance Monitor as the best way to monitor what's going on under the hood of your application.  The authors then drill into CLR performance categories like garbage collection, call overhead, math, reflection, and the use of Generics.  Performance and memory management are two of the most important issues to deal with in Windows Mobile application development and it's great to see these topics get full coverage here.  I enthusiastically recommend this book to anyone interested in diving into the world of Window Mobile Standard/Smartphone development.

Rob