Reactive UI
I'm hearing a lot of good things about ReactiveUI, a library by Paul Betts that combines the MVVM architectural pattern with Microsoft's Reactive Extensions library. From Paul Betts' introductory PDF:
Combining these two make managing concurrency as well as expressing complicated interactions between objects possible in a declarative, functional way. Put simply, if you’ve ever had to chain events / callbacks together and declare state ints/booleans to keep track of what’s going on, Reactive Extensions provides a sane alternative.
Originally called ReactiveXaml, ReactiveUI got a name change because it's useful in some non-XAML situations as well.Â
Have a listen to Paul Betts on Hanselminutes (from 2011).
ReactiveUI is available on GitHub.
Phil Haack has a blog entry about Reactive Extensions that also includes an example of ReactiveUI. Phil says:
Fortunately, now that I work at GitHub I have the pleasure to work with an Rx Guru, Paul Betts, on a project that actively uses Rx. And man, is my mind blown by Rx.