WPF Control Development Unleashed: Building Advanced User Experiences



Price: $38.99


WPF Control Development Unleashed: Building Advanced User Experiences (Sams) - September 2009Publisher: Sams - September 21, 2009

ISBN-10: 0672330334, ISBN-13: 9780672330339

Author: Pavan Podila
Kevin Hoffman


384 pages


WPF Control Development Unleashed: Building Advanced User Experiences





Customer Reviews

Kindle edition has no Table of Contents or Index!!

This looks like a great book and probably is in it's hardcopy version, but I can't say since I bought the Kindle edition which is next to useless as a reference. Without a table of contents or an index, your only option is pretty much to read it from front to back and then never use it again. If that's your plan and you never intend to use the book as a reference, then maybe this will work for you, but for somebody like me that wants to look up specific issues in the book and see the information on those topics, the Kindle version provides zero value. Sadly, that's not what I paid for it. I'm tempted to pay twice now and buy the hardcopy version since it does look like it may have exactly what I'm looking for, but I really object to having to pay twice for one book.

Darrell Plank
08 November, 2010


The book is horrible.

The book is horrible. If you expect to learn how to create controls, you will be disappointed unless you are already a guru in WPF in which case you know how to make controls and you don't need this book.
The very first example of "attached properties" is a piece of code that should be probably studied by cypher experts of Bletchley Park. Some blame goes to Microsoft for typical Redmond nonsense programming style but complete lack of good explanation is criminal. The example is full of convoluted code calls to unexplained myriad of strange classes without much of an explanation why than has to be done that way. After that example authors conclude that you already mastered "attached properties". Other examples and tricks are pretty much the same. Bunch of pieces of complicated code and not much explanation why code has to use particular classes or make specific calls. The underlying assumption is that you already have deep knowledge of WPF! Who in the right mind with deep knowledge would need a book to learn basics of controls? Lot of text is devoted to useless comparisons of writing code to building a house analogy. At the fourth chapter I was really sorry that there is no money back guarantee. The book is complete waste of money. On the sixth chapter I gave up. Anybody want to purchase cheap book out there (used up to the sixth chapter) ? I will be looking for a book that knows how to explain stuff to beginners. If you want to learn WPF custom controls look somewhere else.


Jacek Marchel
29 July, 2010


Inside the design of WPF custom controls

I would not say that this is my favorite WPF book, and I have eight of them. But, it gets into the narrow area of custom control design and how to make the WPF jump through the hoops that you want want it to cover so you can learn how to teach it new tricks.

The book introduces the underlying hierarchy of classes that operate in control design and gives a summary explanation of their purpose. By chapter 5 the book is showing how to make some extreme, but conceptually useful modifications to common controls. A ring guage and a radar display panel are detailed in their design. Fllowing chapters cover use of properties, resources, and binding. Further chapters cover animation, visual effects, and skinning. Chapters 11, 12, and 13 cover 2D mapping into 3D projections, custom animations, and finally pixel shading. The final chapters cover commands, events, picture focus transition, and dependency properties.

Although I would have preferred a more in depth approach that would make the class hierarchy more immediately understandable, the book delivers on its premise that it cover some of the inner design capabilities of WPF controls. I received several useful viewpoints of a control's design potential and a very good idea of how to build extensions to common controls that will be useful in my future work.

In just under 350 pages, this book has upgraded my understanding of WPF controls to an expert level and given me food for thought. Now, don't misunderstand my rating of this material, the book is not complete until it gets into showing a complete design and distribution and covers use of the WPF custom control library project. For these reasons, I gave it only 4 stars.

If you are serious about getting WPF working well for you, your library will have at least four WPF books in it. There is no way to shorten the process, either do the reading or hire someone who has. I find discovering the extent of WPF designs to be intriguing and satisfying. Now I'm off to do some mindbending graphic displays. One of them is going to let me drill down into a sea of a hundred thousand 3D color sprites to find collections of spreadsheet pages and another is going to give me that enticing Miami:CSI Aero screen with touch input that makes crime solving look inviting.

Robin T. Wernick
31 March, 2010


Much more than a resource book.

As a WPF enthusiast, learning WPF at the hobby level has not afforded me the financial resources to travel to Redmond Washington for week-long boot-camps, nor attend extended seminars or workshops to grow my skills and experience. As a result, my only recourse has been to utilize those resources available on the Internet, supplemented with whatever subject-matter texts become available. Unfortunately however, the examples/tutorials available on the internet are typically over-simplistic without insight and many of the subject-matter books turn out to be single-issue recipe books. Although I am happy to have those references when I need to solve a specific issue or problem, I don't find that those types of resources have truly helped me expand my understanding and knowledge of WPF overall. With WPF's long-standing reputation for it's significant learning curve, as well as it's myriad of "moving-parts", the need for a more in-depth understanding as to the design philosophy and structure behind WPF becomes very important to becoming productive and being able to make the most of the framework.

This is where I believe WPF Controls Development Unleashed comes in and has truly distinguished itself. The book attempts to explain the workings "behind the WPF curtain", over-viewing the different thinking necessary from conventional programming to take advantage of the API. The authors provide numerous examples through the book that not only show `how' to customize a control or modify a behavior, but also provides the insight into the design architecture and/or thinking, which can be used straight across the platform. The book is well-written and a delight to read.

With the significant power latent in the WPF platform, I would prefer that any limitations imposed upon my developments would be as a result of my own creativity and skill-level, not what I am able to locate and copy from the internet. I believe WPF Control Development Unleashed attempts to fill-in that limitation-gap and although it may not replace that week-long pilgrimage to Redmond Washington for training, I believe it comes as close as any book can.




W. Hunter
24 March, 2010


Much Needed Book on Building WPF Controls

I've been writing apps for business and pleasure in WPF for 2.5 years now. I own every significant book on WPF that is out there. Most are quite good, and can do a nice job showing Joe Developer how to build an app in WPF by teaching about the out-of-the-box controls, basic data binding, validation, DataTemplates, ControlTemplates, Styles, Triggers, etc. That sort of book can get you building an app that looks very nice and leaves its WinForms battleship gray apps in the dust.

However, actually building custom controls in WPF is a topic that is barely glanced upon in most of those books. Furthermore, there simply wasn't much information specifically on the topic of building your own WPF controls on MSDN. The best sources where blogs such as Josh Smith, Dr WPF, and Pavan Podila (one of the authors). But a book that systematically covered the topic was a void that has been very nicely filled by WPF Control Development Unleashed. This is great because well-done custom controls can really increase the "sizzle" of an app and make it enjoyable to use.

As others have written, this book isn't for someone who is just learning WPF. It is for some advanced developers who are building their own WPF controls. On the first page the authors explain that they are going to teach the "whys" of WPF so that compelling apps can be built, and that they are also maintainable and can stand the test of time because they are built in accordance with the WPF design philosophy. I think the book does a great job of achieving that goal.

One of the biggest strengths of the book is that it spends time showing when NOT to build a custom WPF control in favor of re-templating existing controls. They creatively give a number of examples of this, including using a WPF ListBox to actually display an animated radar screen! Re-purposing existing controls through their ControlTemplates should always be explored before actually building a new custom WPF Control. They also cover the WPF class hierarchy and explain that when building a custom WPF control it is very important to subclass from the correct WPF class.

My favorite chapters were "Building Custom Panels", "Using Existing Controls", "Advanced Scrolling", "Virtualization", "Custom Animations", "Events, Commands, and Focus", and "Advanced Data Binding". These chapters delve into the plumbing of WPF in ways other books don't. Unless you are a WPF rockstar you will learn lots of new things about these topics. Maybe you'll learn about the levels of data binding precedence, or how you can receive change notification for dependency properties that a control doesn't provide an event for, new ways to use Attached Properties--or maybe just some guidelines over when to use Commands or RoutedEvents. You will learn something you didn't know before, even about WPF topics you have used extensively.

Is this book perfect? No, of course not. It simply cannot cover everything about WPF in full detail. For instance, you will find some discussion of WPF design patterns (MVVM, etc) but as these are not the main focus of the book there wasn't room to cover them (and all their flavors). In fact I really think there would be room for a book entirely devoted to WPF flavors of UI design patterns. Despite a few minor shortcomings along these lines, I feel this book merits 5 stars.

The authors' examples of custom WPF controls and re-templated existing WPF controls are fantastic and all the code can be downloaded for free. In fact, if you just read the book and don't look at the code you are really missing out. Just using some of these controls really got some of my own creative juices flowing.

To end, here is what I (@adajos) tweeted about this book:

"The 5 most useful tips I found in WPF Control Development Unleashed. 1. Use AddOwner Instead of Creating a New DependencyProperty #WPF

2. Listen for PropertyChanged events on Dependency Properties with DependencyPropertyDescriptor's AddValueChanged() #WPF

3. How/when to do a Weak Event Pattern with IWeakEventListener and subclassing WeakEventManager. #WPF

4. The entire chapter on Virtualization in #WPF

5. Implementing Drag and Drop with Attached Properties. #WPF

Those were my 5 favorite tips from WPF Control Development Unleashed, but it was chock full of great content. Highly recommended. #WPF"



Joshua Adams
06 January, 2010


Just a collection of random tips and tricks

I'll join the other reviewer and give it just one star. But I do mean it's worth one star, not 0 or -5 stars, because I did learn a thing or two from it, but these tips aren't worth the price of the book and the price of wasting a lot of time skipping page after page of nonsense.

Everyone should read the author's bio before buying a book, and in this case, one is an MVP, which is sort of a stigma in my opinion, as these MVPs just play with technologies and promote them, and generally offer little insight or vision. The other has the dubious title of .NET Architect, which carries even more negative elements.

Contrast that with the book by Charles Petzold, and industry legend; or the book by Chris Sells, a well known .NET GUI programming expert and have several popular .NET books under his belf already; or the book by Adam Nathan, a "senior software development engineer" at Microsoft, that job title alone means he's at least 5 times smarter than an MVP or a so-called .NET architect(although this doesn't guarantee good writing), then you see Adam has written the most authoritative book on .NET/COM interop, which kinda proves his writing skills.


W. WEI
11 December, 2009


Excellent book for the experienced

If you have experience with WPF this is an excellent book. It may not have all the detailed code but has all the meaty topics you need. If it had code for every little thing it talks about it would probably be a 900-page book and much less appealing. This is a 350-page book but very dense. Every page has tons of useful information.
It's a nice complement to Adam Nathan's book (ISBN 0672628917).

Gustavo Cavalcanti
30 October, 2009


Great book if you already know everything in it

This book consistently make promises its fails to keep. Chapter after chapter starts with "in the chapter you will gain an in-depth knowledge of X" and after several pages of very high-level discussion and nearly irrelevant examples concludes with, "Now that you know all about X..." and the authors barely even grazed the topic - then alone provided you with anything you can actually use to implement the topics supposedly covered.

Case in point: Data Templates. They spent the first four chapters raving about them and talking about how they have shown you the power of them and did not provide a single explanation of how to actually use one, or where they are used. No examples or even discussions of concrete examples at all. So when I read "now we have shown you..." and they have not shown me anything at all - well, I'm done. I admit I only made it half-way before I was so disgusted I put it down and quit wasting my time. Chapter after chapter I finished wondering where was the beef?

I'm no WPF beginner, but then I'm no expert either - that is why I am reading the book, right? I am sure if you are reading this stuff already knowing everything it makes more sense - but I found myself thinking as I read about topics I already know, "Man, that is a convoluted way to describe that to someone just learning. I'm sure glad I already know it." It was positively inspiring in the sense that I began thinking if these guys can write a book this bad and get published, maybe I should take a shot at writing a book myself.

Seriously, the entire book needs a reality check - the best is when they claim to be presenting a simpler method of accomplishing some task and then proceed to unfold something grotesque. At least other authors I have read covering WPF have the common decency to show you how to do a thing that is ugly, acknowledge that, yes, it is ugly, shrug and move on - or better yet show you a better pattern, but this book reads like Microsoft sales literature. But then who are you going to believe, the experts or your own lying eyes? I don't know how much of this is the technology and how much is the authors, but sorry, you can point at a bowl of spaghetti and call it a twelve-layer lasagna all you want; I am not buying it.

Ross P. Wright
13 October, 2009


Awesome Book

This is a really awesome book that will really help you to understand developing in WPF even if you never create a control - it is much more than just about control development.

The book quality and code quality are outstanding.

I highly recommend this book.

David Roh


David Roh
09 October, 2009


Covers the most powerful functionality WPF has to offer

WPF is a vast topic. This book does a great job of zeroing in on some of the most powerful functionality WPF has to offer and assembling it in a very concise format.

The book starts out covering the WPF Design Philosophy which is a great for those who need an introduction to the overall context WPF offers the developer. I would recommend reading only to those who have some experience with WPF. This become evident right away. Chapter 2 `The Diverse Visual Class Structure' does a great job of covering all the most important classes in WPF, and it fits them together like a puzzle providing a complete view of the WPF, but I can see the beginner being completely overwhelmed and lost throughout the chapter. This is not a ding to the book, it warns the book is for intermediate to advanced WPF programmers.

The book continues to dig into some of the most advanced features WPF has to offer. The only thing about the book I would change is providing more printed code. The authors say they believe in only printing the most relevant code, which is fine, just not my personal preference. I like to be able to read a book without having to be on my computer to review the code. This is not a ding against the book either, since it is just a preference and the code download is great. It is very well organized and usable.

Beyond the chapters on building controls with WPF the authors also offer guidance on achieving high performing code and the use of performance measuring tools. It is a short chapter but it gets you started.

They also have a chapter of design tips. This chapter is not just WPF centric. The chapter includes a list of the well know design patterns for GUI development. They are not covered in detail, but they have a good summary about the pattern.

The authors have a good writing style that makes the book enjoyable to read. The topics are all very cool topics and they really show off the advanced capabilities of WPF.

I highly recommend all WPF developers read this book at some point along their learning path. It is not introductory, so I would suggest having a little experience first. No matter how advanced you are in your experience level, you will learn some new things from this book.

T. Anderson
29 September, 2009