Near the end of June 2010, I was asked to do a review of a book which was published in April 2010, .NET Compact Framework 3.5 Data Driven Applications. Unfortunately, I’ve been extremely busy with work responsibilities since July, and it has taken me a while to get through this book.
I found this title to be a good read for developers getting started with .NET Compact Framework [3.5] on Windows Mobile 6.x. The author explains the material to the reader through the full lifecycle (design to deployment) of three real-world applications. In the manner used in the book, I found this to be a good method to impart knowledge to the reader, and I thought it mostly well executed. Furthermore, I thought that the author did a good job of breaking up topics across the thirteen chapters in this book. Some of the topics I haven’t seen discussed elsewhere include Bluetooth usage, application updates, and Oracle Lite. I was also pleasantly surprised to see a section in the book giving an overview of the Power Toys for .NET CF 3.5, which are some very useful tools for .NET CF developers. It was also great to see MVC architecture discussed (vs the usual ‘stuff everything in the code behind’ approach).
It should be noted that this book does not cover creating applications for Windows CE devices, which have some important differences from Windows Mobile.
That said, I did find some shortcomings with the material in this book. The author covers using both SQL Server Compact 3.5 (which he calls SQL Server CE 3.5, a personal niggle), and Oracle Lite 10g. This decision was a mixed blessing. While having some information and guidance on setup and usage of both is a boon, it also means that the depth of coverage for each is half of what might have been for a single product. Additionally, I thought that the decision to give examples of data synchronization for SQL Server Compact using Synchronization Services was an interesting choice (clearly done so because RDA is being phased out), but I thought that the reader should have been informed of the trade-offs in using Sync Services instead of RDA. More importantly, for something as important as data synchronization, I would have expected that more than the brief paragraphs describing each available option were deserved.
I think that the author could have demonstrated to the reader that they could have saved time and effort by using free third-party libraries (e.g. 32Feet.NET for Blueooth, etc), instead of writing some of that code themselves, although OpenNETCF’s Smart Device Framework was leveraged for some examples (like signature capture). I’ll also take issue with the coverage of performance optimization (chapter 7), which should have been a bit broader in scope. Additionally, some of the other techniques given as examples in the book (usage of DataSets and data polling, to name two) are performance impediments but not presented as such. Also, discussing Infrared data transfer in a book published in 2010 was an interesting decision.
In sum, a good entry point to those new to .NET Compact Framework development that is worth a read and does provide good starting guidance, but lacking in depth overall. PACKT Publishing has made a chapter of this book available for free (PDF) – Chapter 5 – Building Integrated Services.