Tuesday, January 20, 2009

Responsive UIs in WPF - Dispatchers to Concurrency to testability

Welcome to my series on building responsive WPF applications. This series for the intermediate WPF developer aims to guide you to building WPF applications that won't freeze up on your user when under load. Users expect applications to be responsive, and they will lose confidence in applications that noticeably freeze even for the smallest pause.

In this series I will introduce you to:

  • wonderful features that WPF offers to allow you to avoid multi-threaded programming for simple tasks
  • the threading model that WPF implements and why you should care
  • creating responsive single threaded applications
  • when single threaded stops being the best choice
  • how to implement multi-threaded programming in WPF with what we have learned from the WPF threading model previously covered
  • how to test your multi-threaded application
  • how to refactor your multi-threaded tests so they become concise and coherent again!

So let's get started:

  1. Responsive WPF User Interfaces Part 1 - Introduction, Declarative Programming and Storyboards
  2. Responsive WPF User Interfaces Part 2 - WPF Threading Model and the Dispatcher
  3. Responsive WPF User Interfaces Part 3 - User feedback and the limitations of the Dispatcher
  4. Responsive WPF User Interfaces Part 4 - Multi-threaded code
  5. Responsive WPF User Interfaces Part 5 - Testable Multi-Threaded code
  6. Responsive WPF User Interfaces Part 6 - Unresponsive Controls
  7. Responsive WPF User Interfaces Part 7 - Responsive Controls

Working version of the code can be found here

1 comment:

Nathan said...

Thanks very much for putting this series together! This was a huge help for me to get my long running tasks moved to the background. I have a much better understanding of the Dispatcher now.