Programming Books C Java PHP Python Learn more Browse Programming Books
Essential Windows Presentation Foundation (WPF) and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
More Buying Choices
Have one to sell? Sell yours here
Start reading Essential Windows Presentation Foundation (WPF) on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Essential Windows Presentation Foundation (WPF) [Paperback]

by Chris Anderson
4.3 out of 5 stars  See all reviews (15 customer reviews)

List Price: $54.99
Price: $37.67 & FREE Shipping. Details
You Save: $17.32 (31%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 5 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Want it tomorrow, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition $24.79  
Paperback $37.67  
Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

April 21, 2007 0321374479 978-0321374479 1
“Chris Anderson was one of the chief architects of the next-generation GUI stack, the Windows Presentation Framework (WPF), which is the subject of this book. Chris’s insights shine a light from the internals of WPF to those standing at the entrance, guiding you through the concepts that form the foundation of his creation.”
–From the foreword by Chris Sells
“As one of the architects behind WPF, Chris Anderson skillfully explains not only the ‘how,’ but also the ‘why.’ This book is an excellent resource for anyone wanting to understand the design principles and best practices of WPF.”
–Anders Hejlsberg, technical fellow, Microsoft Corporation
“If WPF stands as the user interface technology for the next generation of Windows, then Chris Anderson stands as the Charles Petzold for the next generation of Windows user interface developers.”
–Ted Neward, founding editor, TheServerSide.NET
“This is an excellent book that does a really great job of introducing you to WPF, and explaining how to unlock the tremendous potential it provides.”
–Scott Guthrie, general manager, Developer Division, Microsoft
“WPF is a whole new animal when it comes to creating UI applications, drawing on design principles originating from both Windows Forms and the Web. Chris does a great job of not only explaining how to use the new features and capabilities of WPF (with associated code and XAML based syntax), but also explains why things work the way they do. As one of the architects of WPF, Chris gives great insight into the plumbing and design principles of WPF, as well as the mechanics of writing code using it. This is truly essential if you plan to be a serious WPF developer.”
–Brian Noyes, chief architect, IDesign Inc.; Microsoft Regional Director; Microsoft MVP
“I was given the opportunity to take a look at Chris Anderson’s book and found it to be an exceedingly valuable resource, one I can comfortably recommend to others. I can only speak for myself, but when faced with a new technology I like to have an understanding of how it relates to and works in relation to the technology it is supplanting. Chris starts his book by tying the WPF directly into the world of Windows 32-bit UI in C++. Chris demonstrates both a keen understanding of the underlying logic that drives the WPF and how it works and also a skill in helping the reader build on their own knowledge through examples that mimic how you would build your cutting edge applications.”
–Bill Sheldon, principal engineer, InterKnowlogy

Windows Presentation Foundation (WPF) replaces Microsoft’s diverse presentation technologies with a unified, state-of-the-art platform for building rich applications. WPF combines the best of Windows and the Web; fully integrates user interfaces, documents, and media; and leverages the full power of XML-based declarative programming.

In Essential Windows Presentation Foundation, former WPF architect Chris Anderson systematically introduces this breakthrough platform, focusing on the concepts and techniques working developers need in order to build robust applications for real users. Drawing on his unique experience as an architect on the team, Anderson thoroughly illuminates the crucial new concepts underlying WPF and reveals how its APIs work together to offer developers unprecedented value.

Through working sample code, you’ll discover how WPF draws on the Web’s simple models for markup and deployment, common frame for applications, and rich server connectivity, and on Windows’ rich client model, simple programming model, strong control over look-and-feel, and rich networking. Topics explored in depth include

  • WPF components and architecture
  • Key WPF design decisions–and why they matter
  • XAML markup language
  • Controls
  • Layouts
  • Visuals and media, including 2D, 3D, video, and animation
  • Data integration
  • Actions
  • Styles
  • WPF Base Services

Essential Windows Presentation Foundation is the definitive, authoritative, code-centric WPF reference: everything Windows developers need to create a whole new generation of rich, graphical applications.

Foreword by Don Box
Foreword by Chris Sells
About the Author

Chapter 1: Introduction
Chapter 2: Applications
Chapter 3: Controls
Chapter 4: Layout
Chapter 5: Visuals
Chapter 6: Data
Chapter 7: Actions
Chapter 8: Styles
Appendix: Base Services

Frequently Bought Together

Essential Windows Presentation Foundation (WPF) + Programming WPF + Windows Presentation Foundation Unleashed (WPF)
Price for all three: $110.56

Buy the selected items together

Editorial Reviews

About the Author

Chris Anderson, architect in Microsoft’s Connected Systems Division, specializes in designing and architecting .NET technologies for the next generation of applications and services. In ten years at Microsoft, he has worked on technologies ranging from Visual Basic 6.0 and Visual J++ 6.0 to .NET Framework 1.0 and 1.1. In 2002, he joined the Windows Client team as an architect for Windows Presentation Foundation. Anderson has spoken at numerous conferences, including PDC, TechEd, WinDev, and DevCon.

Excerpt. © Reprinted by permission. All rights reserved.

Over the past nine years I have worked on many user interface (UI) projects at Microsoft. I have spent time working on Visual Basic 6.0, the version of Windows Foundation Classes that shipped with Visual J++ 6.0, Windows Forms for the .NET Framework, internal projects that never saw the light of day, and now, finally, Windows Presentation Foundation (WPF).

I started working on WPF about 18 months after the team was created, joining as an architect in the fall of 2002. At that time, and until late 2005, the team and technology were code-named Avalon. Early in 2003 I had the privilege of helping to redesign the platform, which we released as a technology preview for the Professional Developers Conference (PDC) 2003 in Los Angeles. WPF is the product of almost five years of work by more than 300 people. Some of the design ideas in WPF date back to products from as early as 1997 (Application Foundation Classes for Java was the beginning of some of the ideas for creating components in WPF).

When I joined the WPF team, it was still very much in research mode. The project contained many more ideas than could possibly ship in a single version. The primary goal of WPF—to replace all the existing infrastructure for building applications on the client with a new integrated platform that would combine the best of Win32 and the Web—was amazingly ambitious and blurred the lines between user interface, documents, and media. Over the years we have made painful cuts, added great features, and listened to a ton of feedback from customers, but we never lost sight of that vision.

A Brief History of GUI

Graphical user interfaces (GUIs) started in the early 1980s in the Xerox PARC laboratory. Since then, Microsoft, Apple, and many other companies have created many platforms for producing GUI applications. Microsoft’s GUI platform began with Windows 1.0 but didn’t gain widespread use until Windows 3.0 was released in 1990. The primary programming model for building GUI applications consisted of the two dynamic link libraries (DLLs): User and GDI. In 1991 Microsoft released Visual Basic 1.0, which was built on top of User and GDI, and offered a much simpler programming model.

Visual Basic’s UI model, internally called Ruby, 1 was far simpler to use than were the raw Windows APIs. This simplicity angered the developers who felt that programming should be difficult. The early versions of Visual Basic were significantly limited, however, so most developers building “real” applications chose to program directly to User and GDI. Over time, that changed. By the time the Microsoft world moved to 32-bit with the release of Windows 95 and Visual Basic 4.0, the VB crowd was gaining significant momentum and was offering a much wider breadth of platform features.

At about the same time there was another big shift in the market: the Internet. Microsoft had been working on a replacement for the Visual Basic UI model that was internally called Forms3. For various reasons, Microsoft decided to use this model as the basis for an offering in the browser space. The engine was renamed Trident internally, and today it ships in Windows as MSHTML.dll. Trident evolved over the years to be an HTML-specific engine with great text layout, markup, and scripting support.

Also around the same time, another phenomenon appeared on everyone’s radar: managed code. Visual Basic had been running in a managed environment for a long time (as had many other languages), but the introduction of Java by Sun Microsystems in 1994 marked the first time that many developers were exposed to the notion of a virtual machine. Over the next several years managed code became a larger and larger force in the market, and in 2002 Microsoft released its own general-purpose managed-code platform: the .NET Framework. Included in the .NET Framework was Windows Forms, a managed-code API for programming User32 and GDI+ (a successor to GDI32). Windows Forms was intended to replace the old Ruby forms package in Visual Basic.

As we entered the new millennium, Microsoft had four predominant UI platforms: User32/GDI32, Ruby, Trident, and Windows Forms. These technologies solve different sets of problems, have different programming models, and are used by different sets of customers. Graphics systems had also evolved: In 1995, Microsoft introduced DirectX, a graphics system that gave the programmer much deeper access to the hardware. But none of the four main UI technologies used this newfound power in a meaningful way.

There was a real problem to be solved here. Customers were demanding the richness of modern video games and television productions in their applications. Media, animation, and rich graphics should be everywhere. They wanted rich text support because almost every application displayed some type of text or documentation. They wanted rich widgets for creating applications, buttons, trees, lists, and text editors—all of which were needed to build the most basic application.

With these four major platforms a large percentage of the customers’ needs were met, but they were all islands. The ability to mix and match parts of the platforms was difficult and error-prone. From a purely selfish point of view, Microsoft management (well, I’ll name names: Bill Gates) was tired of paying four teams to build largely overlapping technologies.

In 2001, Microsoft formed a new team with a simple-sounding mission: to build a unified presentation platform that could eventually replace User32/GDI32, Ruby, Trident, and Windows Forms, while enabling the new scenarios that customers were demanding in the presentation space. The people who made up this team came largely from the existing presentation platform teams, and the goal was to produce a best-of-breed platform that could really be a quantum leap forward.

And so the Avalon team was formed. At PDC 2003, Microsoft announced Avalon (the code name at the time). Later the project was given the name Windows Presentation Foundation.

Principles of WPF

WPF has taken a long time to build, but for the entire life of this project, several guiding principles have remained constant.

Build a Platform for Rich Presentation

In descriptions of new technology, rich is probably one of the most overused words. However, I can’t think of a better term to convey the principle behind WPF. Our goal was to create a superset of features from all existing presentation technologies—from basic things like vector graphics, gradients, and bitmap effects, to more advanced things like 3D, animation, media, and typography. The other key part of the principle was the word platform. The goal was to create not merely a runtime player for rich content, but rather an application platform that people could use to build large-scale applications and even extend the platform to do new things that we never envisioned.

Build a Programmable Platform

Early on, the WPF team decided that both a markup (declarative) and code (imperative) programming model were needed for the platform. As we looked around at the time, it became clear that developers were embracing the new managed-code environments. Quickly, the principle of a programmable platform became a principle of a managed programming model. The goal was to make managed code the native programming model of the system, not a tacked-on layer.

Build a Declarative Platform

From the perspective of both customers and software developers, it seemed clear that the industry was moving to a more and more declarative programming model. We knew that for WPF to be successful, we needed a rich, consistent, and complete markup-based programming model. Again, a look at what was going on in the industry made it clear that XML was becoming the de facto standard for data interchange, so we decided to build an XML programming model, which became XAML (Extensible Application Markup Language).

Integrate UI, Documents, and Media

Probably the biggest problem facing customers who were building applications was the separation of pieces of functionality into isolated islands. There was one platform for building user interfaces, another for building a document, and a host of platforms for building media, depending on what the medium was (3D, 2D, video, animation, etc.). Before embarking on building a new presentation system, we set a hard-and-fast goal: The integration of UI, documents, and media would be the top priority for the entire team.

Incorporate the Best of the Web, and the Best of Windows

The goal here was to take the best features from the last 20 years of Windows development and the best features from the last 10 years of Web development and create a new platform. The Web offers a great simple markup model, deployment model, common frame for applications, and rich server connectivity. Windows offers a rich client model, simple programming model, control over the look and feel of an application, and rich networking services. The challenge was to blur the line between Web applications and Windows applications.

Integrate Developers and Designers

As applications become graphically richer and cater more to user experience, an entirely new community must be integrated into the development process. Media companies (print, online, television, etc.) have long known that a variety of designer roles need to be filled to create a great experience for customers, and now we are seeing that same requirement for software applications. Historically the tools that designers used were completely disconnected from the software construction process: Designers used tools like Adobe Photoshop or Adobe Illustrator to create rich designs, only to have developers balk when they tried to implement them. Creating a unified system that could natively support the features that designers required, and using a markup format (XAML) that would allow for seamless interop...

Product Details

  • Paperback: 512 pages
  • Publisher: Addison-Wesley Professional; 1 edition (April 21, 2007)
  • Language: English
  • ISBN-10: 0321374479
  • ISBN-13: 978-0321374479
  • Product Dimensions: 9.2 x 7.1 x 1.2 inches
  • Shipping Weight: 2.1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (15 customer reviews)
  • Amazon Best Sellers Rank: #942,778 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
23 of 25 people found the following review helpful
2.0 out of 5 stars Where are the WHY's? September 5, 2007
Chris has always impressed me with his talent to explain even the hardest bits of WPF in an approachable fashion - I guess many Channel 9 and other dev-related sites visitors would agree with me. Therefore, I started reading Essential WPF with high expectations...

There is nothing wrong with the book itself, but the marketing is completely and utterly false. Chris himself emphasizes that he would like to talk about the "why-s" of the platform and this is the very reason why I bought his book - only to find out that nothing like that happens. Quite honestly, any technical author could write this book after reading Windows 3.0 SDK documentation thoroughly - there is very little added value or insight. There are moments when Chris writes "this may be confusing..." and in this very moment, you would expect "... but it was necessary because of this and that" but that almost never happens. You are left with doubts about the quality of WPF which is probably the worst thing an author can do.

Don't be confused as I was: this book is not about "why-s", it is not about reasoning, it is not about in-depth discussion of some decisions made. It is an extensive walkthrough through the WPF features, it is a description of the framework but nothing more. Of course you will find some insights in this book but they are definitely not in proportion to Chris's role in the WPF team and his otherwise great skills.

I, personally, started reading this book as a big fan of WPF and was left with doubts if all the complexity is really necessary (and some things are pretty complex compared to Flex which is my current development environment). Actually, I think that I enjoyed reading the WPF introductory articles in the Windows SDK 3.
Read more ›
Comment | 
Was this review helpful to you?
15 of 16 people found the following review helpful
3.0 out of 5 stars Not as 'fantastic' as I was expecting June 14, 2007
My intention is not to criticise this book but to provide a bit of balance to the other "superlative" filled reviews. I had already read Adam Nathan's book before this and had high expectations of this one after reading the other reviews. After finishing the book I can't really understand why the reviews were so glowing. There are definitely some design insights and Chapter 7 (Actions) covered the important Command pattern in good detail, but I'm struggling to think of any advantages over the WPF Unleashed book.

I would definitely recommend WPF unleashed over this and the bottom line is I'll be looking to sell my copy of Essential WPF as I don't see the value of having both.
Comment | 
Was this review helpful to you?
11 of 12 people found the following review helpful
5.0 out of 5 stars Required reading for WPF May 10, 2007
I thought no one could top Adam Nathan's WPF book, and this one doesn't top it - no what it does it match it but does so without tediously repeating the same material and approach. Chris Anderson's book is the one to read if you want to know the Why's and not just the What's - this is not just because Chris was one of the chief architects but because he explains it all so clearly. The book's organisation is wonderful, WPF has a huge surface area but Chris's presentation of it is effortless, enlightening and entertaining. I wouldn't hesitate to recommend this book.
Comment | 
Was this review helpful to you?
7 of 8 people found the following review helpful
3.0 out of 5 stars Essential is a good word June 28, 2007
Overall, I was not impressed with this book. I kept getting the sense that I was about to learn something interesting when - poof! - the book moved on to another topic.

So, if you're looking for an introduction to the concepts of WPF, this might be for you but do not expect any in depth coverage of any topic. I was hoping for (consider the author's background) a lot more detail.

To put this review in perspective: I have been working with WPF for quite some time and have already been through other books on WPF (including Petzold's and Adam Nathan's - the later being my personal favorite to date).
Comment | 
Was this review helpful to you?
4 of 4 people found the following review helpful
5.0 out of 5 stars An inside view of WPF May 3, 2007
I bought all available WPF, so at the beginning i wondered: "What else can another book say new about WPF?". Well, this book has a lot of interesting details missing on others, probably because it has been written with an "inside" view, i knew a lot of architectural decisions reading it.

It has a good mix of xaml and code, it has pictures (!) and its a pleasant reading. Recommended to people migrating from Windows Forms to WPF world.
Comment | 
Was this review helpful to you?
2 of 2 people found the following review helpful
5.0 out of 5 stars A fantastic primer on WPF October 9, 2007
Format:Paperback|Verified Purchase
If you're an experienced programmer and looking for a primer on WPF, Anderson has written a succinct overview that will definitely get you going in the right direction without wasting your time. It will give you not only the basics but provide an insight into what is going on and how you can go further in exploring WPF. Although it lacks in-depth examples (and source code) this book provides a readable reference covering all aspects of WPF- what it is, what it can do, and what makes WPF different.
Comment | 
Was this review helpful to you?
4 of 5 people found the following review helpful
5.0 out of 5 stars The Foundation to the Foundation April 29, 2007
By Ambrose
Essential Windows Presentation Foundation is precisely what the title says it is. What more can you ask for in a book? There are already several books on the RTM of WPF, and there are bound to be more. The unique value this one has is that it is written by Chris Anderson, who as most know, was an instrumental architect in designing WPF, and this (along with his direct connection to the others who worked on it) gives him insight that you just otherwise can't get.

In particular, I like that he often provides the thinking that went into particular design decisions. He readily admits in several places that the design of this or that was hotly debated, and one can only imagine that they would be. Having worked at a few commercial software vendors myself, I know how difficult it can be to know the best way to design a thing, and it can only be more challenging as your audience widens.

After this, the main thing that makes the book valuable is that it is deeply conceptual. The point of the book is not to be a reference, a recipie book, or a smattering of tutorials. Rather, the book provides, in a coherent form, the key principles underlying the different aspects of WPF. And by elaborating these principles, Chris establishes a strong sense that the Foundation was designed in a similarly coherent manner.

My favorite chapters were the one on Data, the one on Actions, and the Appendix. For a solutions architect and developer, these I think provide the most interesting meat. Of course, these types will likely want to delve into the first three chapters as well. In fact, the only one that I'd suggest you can probably get away with skipping is the one on Visuals; I found this one pretty dry and hard to push through.
Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
3.0 out of 5 stars Good primer but lacks the depth of Programming WPF book
This book provides a good introduction to the overall architecture of WPF. However, it lacks the depth necessary to feel comfortable performing the more advanced programming... Read more
Published on June 26, 2008 by Keith Smith
5.0 out of 5 stars A terrific book to really understand WPF
This book is all about the philosophy behind the WPF design and architecture. It delivers a simple but comprehensive understanding about WPF features - given this simple "big... Read more
Published on May 27, 2008 by K. Osenkov
4.0 out of 5 stars Decent
Essential WPF by Chris Anderson is intuitive and inspiring. The author explains WPF in a baby-step-forward approach with mostly success. Read more
Published on May 19, 2008 by Deriven
5.0 out of 5 stars Makes WPF easy to understand
The author clearly presents the reasoning behind the design, making a huge platform much more approachable.
Published on July 7, 2007 by Michael Hewitt
5.0 out of 5 stars The Why of WPF with Real World Examples
This book is great if you want to understand the why behind WPF.

I have found that a lot of people are turned off by some the abstract teaching found in some of the... Read more
Published on May 25, 2007 by T. Anderson
5.0 out of 5 stars Great book to explain how it works
Chris gave great introduction by explaning the rationale behind the designs and explain the fundamental design principals very well. Highly recommended.
Published on May 21, 2007 by Lin
5.0 out of 5 stars Brilliantly written explanation from the architect
No one should be allowed to have both sufficient genius to be one of the chief architects of WPF and the extraordinary writing skills Chris Anderson demonstrates in this book. Read more
Published on May 19, 2007 by Jesse Liberty
5.0 out of 5 stars Understand the innards of WPF
This is an incredibly easy read. Before I knew it, I had torn through the book and had a good understanding of how things work. Read more
Published on May 14, 2007 by Scott
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category