My Five Day Course For Hitting the WPF Curve/Cliff

At this point, with the amount of great content online (and free), it is possible to train yourself on WPF.  But where to begin? There are a ton of links, blogs, documents, screencasts, videos and more — so much, in fact, that beginning can be daunting.   With this in mind, I have put together a 5 day guide, one for developers and one for designers, on how to get ramped up for someone who knows nothing.  So, if you are ready to commit, here’s my recommended path — and I’d love people’s feedback for what I may have missed or what really helped them.

But, before reading a line of documentation or drawing a line of vector art or writing a line of code, it is important — no, critical — to adopt the right mindset: a beginner’s mindset. Without a healthy degree of humility, the process of learning WPF can become more of a hard fought struggle with technology instead of a successive cascade of delights in discovery and understanding. 

Such a beginner’s mindset does not come easily to our kind, designers and developers, who pride themselves on expertise and, moreover, whose very careers and success have been built by this expertise.  Everyone has an ego, but the best designers and developers perhaps have, um, larger ones.  When you are at the top of your game, it isn’t easy to become a novice again.  For designers, who have become one with their preferred tool, learning a new tool like Expression Interactive Designer or Graphic Designer can be not only humbling, but downright frustrating, especially when the tools themselves are still pre-beta.  For developers, who are utterly proficient in a given platform technology, learning a new API as vast as WPF — an API not fully documented and with at least 3 ways of doing any one thing —  can be rocky.

But, with the right attitude of humility and curiosity, the curve can be hit without undue harm.   (Certainly, a dose of masochism doesn’t hurt for anyone to brave the pain of working on pre-release software: it is called the bleeding edge for a reason.)

So, on to the course:

Day 1

Day 1 has NO hands-on activities.  This is counter-intuitive to how many people learn, whose instinct is to just dive in.  But with WPF, it is absolutely worth sacrificing a day to get the big picture before diving in.  The rest of my prescription is hands-on, so just suck it up on day 1 and watch/read without being tempted to write any code or touch any pixels.

Who: Developers and Designers
What: Watch Michael Wallent’s presentation from MIX.  Check out See Windows Vista. This will give you an understanding of the overall vision for WPF and, more importantly, a sense of the possibilities of the platform by seeing some of the very best demos on the platform.

Who: Developers
What: Watch Developing a WPF Application

Who: Designers
What: Watch A Designer’s Overview of WPF and Introducing Microsoft Tools for Professional Designers

Go have lunch.

Now, get your environment set up so you can begin playing. Plan an hour for downloading and installing all of the software necessary for XP; if you are going to use Vista, plan for more time to download and install it. Developers go here and designers go here. Okay, now back to the learnin’. 

Who: Developers (and Designers who aren’t intimidated by mark up XML)
What: Read through the Getting Started In the SDK You will feel like it is too simple, but do it. Provides conceptual info hands-on.  You will be doing some cut/paste into XAMLPad. 

Who: Designers
What: Watch demos and tutorials up at

Day 2

Now you get your hands dirty.  Still, you will be relagated to “hello world” and drawing primitives, again humiliating.  But stick with the program.  Learning to crawl before learning to run is really important with WPF.

Who: Developers
What: Do SDK tutorial on Creating a WPF Application  Or, if you can get your hands on Charles Petzold’s Applications = Code + Markup, skip the SDK and work your way through his book. Another option is to do the Microsoft eLearning course, which is free now and will only be $9.99 after ship.

Who: Designers
What: Do the first half of the Fabrikam tutorials that are part of EID

Have Lunch

Who: Developers
What: Do SDK tutorial on Adding 2D Graphics and Data Binding.  Or, keep reading Charles Petzold’s Applications = Code + Markup.

Who: Designers
What: Do the second half of the Fabrikam tutorial that is part of EID

Who: Developers and Designers not intimidated by mark up
What: Play with the SDK Viewer Sample

Day 3

By now you are starting to get it.  But don’t get cocky.  You have a long way to go. Okay, maybe I’m not giving you enough credit. Let’s give you a test:

–Can you explain the difference between a template and a style in WPF?
–Can you explain the difference between a timeline and a clock when using Animation?
–Why would you use a ContentControl as compared to a UserControl?
–How do you apply resources from EGD into EID?
–What is the relationship between vectors and bitmaps in EGD?
–How do you trigger animations that also trigger media in EID?

Maybe you can answer all these questions.  But maybe you can’t.  Stick with the program…

Who: Developers
What: Read the following SDK topics on the various sub-systems of WPF: Fundamentals, Data, Graphics and Media It’s the morning, so you are ready for more conceptual knowledge.  Conceptual understanding is key in WPF so you know what happens when, say, you use the layout system or the animation system. It is important you understand the functionality, limits and costs of each WPF subsystem — as well as how each subsystem works togethers.

Who: Designers
What: Go play with EGD.  Do its tutorials.  Play around with exporting to XAML and pulling that into EID and read this post on how to do it. Watch this channel 9 screencast and download accompanying code that really gets into workflow between tools. If an Illustrator user, try out Mike Swanson’s exporter.  If a Fireworks user, try this converter to XAML. Also, realize that you can cut/paste between EGD and Illustrator with some lossiness but pretty accurate nonetheless. 

Have Lunch

Who: Developers and Designers Together
What: Plumb through all the samples that are in the SDK and EID.  Poke around the blogsphere to find other samples. The WPF Community site is a great place to find samples too.  Knowing they are there will be invaluable when you later want to do something. 

Day 4

Okay, now you are ready to go out on your own, but with some guidelines.  Come up with a very simple prototype application to try, such as a simple game or simple application.  Maybe try porting an existing application you have written to see how it would be done in WPF. If that is too loose, try extending one of the application samples in the SDK.

A great model of this is up on  In that blog, you can see someone real time experimenting with WPF and watch him hit the curve and discover WPF.  Many times, he is taking an existing project he knows and moving it to WPF.

Day 5

Go back and rewrite whatever you wrote in Day 4.  Invariably, you didn’t get it right the first time.  Know that you will rewrite it.  This is a truism of WPF that I continually encounter as do many other folks I’ve worked with.  You never get it right the first time. 

Now, you wrote your app and it performs like crap.  Go read the Optimzing WPF Application Performance paper and then go get familiar with the WPF perf tools  and fix it.  

Comments (18)

  1. Yaakov says:


    Nice post.

  2. Karsten’s 5-day WPF training agenda looks great.  Karsten has helped partners design and develop…

  3. I wish I’d had that 5 months ago!!  Perhaps I wouldn’t have had to share my ‘jumping off a cliff’ analogy with you!

  4. Karsten Januszewski has made an awesome collection of resources designed to get you up and running with…

  5. So you are interested in getting up to speed on WPF, but don’t know where to start? Karsten Januszewski…

  6. Karsten has a great post on learning WPF in five days.  This isn’t a go to Dallas for trianing,…

  7. Karsten has a great post on learning WPF in five days. This isn’t a go to Dallas for trianing,

  8. Tim Sneath says:

    We’re in the home stretch after five long years of development. As we close in on the RC1 release of…

  9. Don’t know what WFP is? Or what about the EID? Don’t know about the difference between the June and July