Author: Matthew MacDonald
Publisher: Apress, 2010
Aimed at: VB programmers
Pros: Clear and fairly complete coverage
Cons: Too big to read comfortably
Reviewed by: Mike James
If you are looking for an encyclopedic guide to WPF and in VB .NET then look no further.
This is the update of Pro WPF in VB 2008 and the new material has been well integrated into each of the chapters complete with box outs if any changes need to be highlighted.
The only real problem with this book is its size. It is difficult to read and the font size is small. In simple terms there are lots and lots of words in this book and it is unlikely that anyone is going to sit down and read it cover to cover. At over 1200 pages it is also physically difficult to handle. Shame there isn't a Kindle edition at the moment.
The book starts off with a useful guide to the principles of WPF and for a change it really is important to read this overview. You need to understand the grand principles behind WPF because without it you will be wondering why it is like it is. For example, why is the standard WPF resolution 96 dpi and why aren't we working in pixels. It all becomes clear when you realise that WPF is based on vector graphics.
From here the book deals with some core topics XAML, layout, dependency properties and routed events. The important point is that these are not only described but much of why they are needed and why they are as they are is explained.
The book then moves on to cover controls, the application, binding, commands, resources, styles and behaviours. This is basically what you need to know when you are using WPF controls to build a user interface.
Next we move into graphics in general - shapes, brushes, transformations, geometries, drawing, effects, visuals and animation. All explained well but in some cases only at the level of an overview.
The book then returns to advanced controls and related topics - custom elements, data binding, formatting, data views, lists, trees and grids. There is a collection of chapters on presentation and multimedia - windows, pages and navigation, menus, toolbars and ribbons.
The last few chapter cover a range of only vaguely related topics - sound, video, 3D, documents, printing, using Windows Forms, multi-threading, the add-in model, and click once deployment.
You can tell that I have been hard pressed to find a structure for the book and to be honest there isn't one. The author has made no attempt to divide the book up into a logical progression. Roughly speaking it proceeds from the more common to the less common and the more central to the more esoteric. This means that there isn't a particularly predefined path in reading the book and you can simply look up things that interest you, moving to earlier chapters if you find you don't follow. This said I would recommend reading Chapters 1 to 6 as a sort of introduction to WPF.
Many of the topics are not treated in depth and you certainly won't find many tricks or clever ways of using facilities. Even with a book of this length there is only space to deal with the minimum you need to know. However, the principles are always well explained and the examples are short and to the point. If you prefer long real-world examples then you might be disappointed. The code is in the spirit of VB .NET and not just a translation from C#
Finally - does this book really have to be so long? The answer is probably yes and this is a reflection on how complicated WPF is compared to Windows Forms.
A very good introduction to WPF which should prove useful to almost any programmer needing to brush up on some aspect of using WPF in Visual Basic.
Author: Dr. Simon Harrer, Dr. Jörg Lenhard and Linus Dietz
Publisher: Pragmatic Bookshelf
Audience: Java programmers at just the right level
Reviewer: Alex Armstrong Learn Java by comparing the good against the bad - sounds like a good idea!
Author: Rochelle King, Elizabeth F Churchill, and Caitlin Tan
Audience: Data developers
Reviewer: Kay Ewbank This book looks at how you can use data-driven A/B testing for making design decisions in your code.