Thursday Night

Paul Betts’s personal website / blog / what-have-you

ReactiveXaml is released, including samples and binaries

After resolving the Silverlight 4 issues, a new release is definitely in order. To that end, I present ReactiveXaml

Remind me what ReactiveXaml is again?

ReactiveXaml is a M-V-VM framework like MVVM Light or Caliburn.Micro, that is deeply integrated with the Reactive Extensions for .NET. This allows you to write code in your ViewModel that is far more elegant and terse when expressing complex stateful interactions, as well as much simpler handling of async operations. Here’s some motivating posts that have more info:

New features in 1.4

  • Added Debug Mode, which will add extra logging and catch certain bugs early in your apps’ debug builds. Enable it by calling RxApp.EnableDebugMode() inside an #if DEBUG block.
  • Most change notifying types (ReactiveObject, ReactiveCollection) now support the INotifyPropertyChanging interface, so you can be notified right before a property will change, as well. Corresponding IObservables have been added as well (i.e. “ItemsAdded” now has “BeforeItemsAdded” as well)
  • Updated our copy of Rx to the PDC10 release
  • Many bugs fixed, especially with SL4 and WP7

How can I get started quicker?

Download the binary release here (UPDATE: This release has a blocking issue for SL and WP7, 1.4.1 corrects this and I’ve updated the links here to point to that release instead):

Building the project:

Building the project requires having quite a few products installed – to build a full release, you need:

  • Visual Studio 2010
  • Pex / Moles
  • Code Contracts for .NET
  • Expression Blend 4.0
  • Silverlight 4.0 Development Tools
  • Windows Phone 7 Development Tools

That being said, if you’re only interested in ReactiveXaml core, you only need VS2010 Professional – the other projects can simply be unloaded. Clone the source from GitHub, or download the source code release as a Zip file (though I highly recommend the former).

Written by Paul Betts

October 30th, 2010 at 10:38 pm