First Edition
Over the past two-plus years, my day job has involved XAML-izing various parts of the Microsoft universe. My standard refrain when encountering XAML newbies has been "read the XAML appendix from Chris and Ian's book." That appendix (originally printed in the beta edition of this book) was easily the most direct and to-the-point treatment of the topic I've seen, and several dozen of my coworkers got their first taste of XAML from Ian's excellent writing. (Ian wrote the XAML appendix.) Over the past year, as I've started to make the transition from runtime plumber to pixel pusher, the chapters on WPF proper were super-efficient in getting me off the ground (things have changed a lot since I wrote my last WndProc).
At the time this edition hits the shelves, there are numerous books dedicated to WPF, written by some pretty notable folks. This book is unique in that Ian has been telling the story on the road for a couple of years getting the right balance of conceptual understanding and pragmatic "everyone screws this up" experience. I know from personal experience that there's nothing like teaching to hone a story to perfectionthis book is evidence of that.
Ian's co-author should thank his lucky stars that Ian was willing to travel the planet trying out the material rather than taking a cushy job in Windows.
Now that they've gotten this book out, maybe Ian should take a cushy job, too.
He's certainly earned it.
Second Edition
Wow, I can't believe that after all that time in the chute, .NET 3.0 and Windows Vista have finally shipped.
I vividly remember scrambling backstage at PDC 2003 with Chris trying to ready the first live demonstration of .NET 3.0 (then called WinFX) for the keynote speaker, Jim Allchin. It was an especially stressful keynote because Los Angeles was plagued with brush fires at the time and Chris Anderson's flight had been canceled; fortunately Chris Sells had already arrived and was ready to pinch-hit both in preparation and presentation if Chris, in fact, couldn't make it to L.A. in time. At the time, Chris' job at Microsoft was to make sure that Vistaincluding WPFwas a smashing success. Little did he know it would take almost four years until the product actually shipped (which of course is a prerequisite for success).
So, what's the big deal with WPF?
Like its sister .NET 3.0 technology, Windows Workflow Foundation (WF), WPF embraces the "it takes a village" approach to software development and uses XAML to allow people with different skill sets to collaborate in the development process. In the case of WF, XAML lets high-level process and rule descriptions integrate with imperative code written in C# or Visual Basic. In the case of WPF, XAML is the bridge between us code monkeys and the beret-wearing, black-turtleneck set who design visuals that look like they weren't designed by, well, us code monkeys.
WPF really is an impressive piece of technology: documents, forms, and multimedia all wrapped up nicely in a markup- and code-friendly package.
What I find even more impressive is the fact that Chris found the time outside his day job to pull together the book you're holding in your hands right now, capturing those four-plus years of experience with WPF (including screenshots!) into a digestible and portable form.
I've had the good fortune of having many conversations with Chris over the years about the nuances of WPFsometimes on the phone, sometimes in his office (it's across the hall from mine), and sometimes at the poker table.
This book has taught me a whole lot more.
Now that it's all shipped, let the light blinking begin!
Don Box
Architect, Microsoft
When I joined Microsoft 11 years ago, I first worked in the IT group, building applications to help the Microsoft sales force analyze data. I developed using Visual Basic 4.0 on early versions of Windows 95 and Windows NT 3.51 before moving over to work on the development team for Visual Basic 5.0, and later, 6.0. As time went on, I worked on Visual J++, Windows Foundation Classes, .NET, Windows Forms, ASP.NET, and eventually the Windows Presentation Foundation (WPF).
When I learned to program Windows, I read the book that was considered the "bible" of Windows programming at the time, Programming Windows 3.1 by Charles Petzold (Microsoft Press). After helping to build the next-generation programming platform for Microsoftthe .NET FrameworkI was first introduced to Chris Sells because he'd written the "bible" of programming .NET client applications: Windows Forms Programming (Addison-Wesley). Later, while I was building WPF, Chris and Ian were already writing the first book for that technology, too. As part of his work, Chris provided feedback on early versions of WPF, drawing on his extensive experience as a preeminent author and educator for programming client applications for Windows. In fact, based on his sensibilities, we actually refer to a customer-focused style of system design used in my group as the "Sellsian" approach.
Of course, Chris didn't write this book all by himself. Ian Griffiths is a tremendously gifted technologist with a pedigree that includes working with DevelopMentor and now Pluralsight as a consultant, developer, speaker, and author (his works include . NET Windows Forms in a Nutshell [O'Reilly]), focusing on a wide range of technologies including Windows Forms and WPF. I've had less opportunity to spend time with Ian; however, in every interaction with him, I have been amazed!
Chris and Ian have both followed client technology since the early days of Windows. While I have spent my career building platforms, Chris and Ian have spent their careers making them accessible to a broad range of developers. As Chris puts it, they've been "following along behind [me] with a broom and a dustpan, cleaning up [my] messes for years."
This book is a thorough and comprehensive dive into WPF. Chris and Ian's unique approach to explaining and building software illuminates the corners and open vistas of the platform. When they bump into its limitations, they don't just explain them, but they show you how to work around them and solve real-world problems.
If you are looking for an exhaustive treatment of how to build applications using the Windows Presentation Foundation, this book deserves a spot on your shelf.