29

I've been doing some prototype work on a new Silverlight application using Caliburn Micro as our MVVM Framework. The team has generally been happy with it. In order to address some issues with throttling requests to services, it was suggested that I look into ReactiveUI's ReactiveCollections and their implementation of INotifyPropertyChanged.

Does anyone have any experience around using the two together? Since they are both primarily MVVM Frameworks, there's a good bit of overlap, so I wonder if it might be more trouble than it's worth to try and make them work together.

Some of the things we really like about Caliburn Micro are:

  • The Convention based binding, etc...Very nicely done in our opinion.
  • Bootstrapping. We like the way this is handled, it's easy to extend when you need to, but the out of the box stuff works well for many of our use cases.
  • Composition/Screen Management. We really like Rob's notion of conductors, screens, etc. It flows very nicely for us.

The ReactiveUI stuff that has drawn us to it (at least initially).

  • The Reactive Collections and INotifyPropertyChanged stuff. Particularly the ability to throttle the reactions.
  • Reactive's asynchronous stuff seems a bit cleaner to deal with than Rob's Co-routine implementation.

I've barely had a chance to play with ReactiveUI yet, but as I was looking at it and seeing the overlap between the two, I wondered who might have tried to work both into a project. I haven't been able to find anything via Google (which could well be my fault).

I'd love to know if you tried this; what issues did you have? Which parts of each framework did you use and why? Are there any good examples or blog posts out there on using them together?

Cheers,

Steve

Cameron MacFarland
  • 70,676
  • 20
  • 104
  • 133
Steve Brouillard
  • 3,256
  • 5
  • 41
  • 60

1 Answers1

30

Use both! This blog post should get you most of the way there - it's actually very easy to take existing ViewModels that use other frameworks and "RxUI'ify them". This way you can try out ReactiveUI on a single ViewModel without having to pick either Caliburn Micro or RxUI.

codekaizen
  • 26,990
  • 7
  • 84
  • 140
Ana Betts
  • 73,868
  • 16
  • 141
  • 209
  • Paul. You rock!! Thanks for your quick answer. As it happens, I was coming back to S/O to post that I had found the blog entry you linked to. – Steve Brouillard Jul 21 '11 at 23:56
  • 1
    For anyone else that comes across this answer, `MakeObjectReactiveHelper` has been removed. See the notes on [migrating-from-rxui4.md](https://github.com/reactiveui/ReactiveUI/blob/b00244847c665b21eb88a38a84d52d2675149292/docs/migrating-from-rxui4.md) – blachniet Jul 29 '13 at 13:10
  • Thanks @blachniet - yeah, as of RxUI 4.x it's even easier to use RxUI with other frameworks, you don't even need to use any boilerplate – Ana Betts Jul 29 '13 at 14:36
  • blog post link is dead. :( – Meirion Hughes Sep 23 '13 at 14:02
  • @MeirionHughes Give me a day or two, I'm redoing my blog software – Ana Betts Sep 23 '13 at 18:45
  • @PaulBetts Link to documentation pdf is dead – Beachwalker Jan 17 '15 at 11:10
  • @PaulBetts Sure? Got message: "Error establishing a database connection" – Beachwalker Jan 22 '15 at 09:47
  • @PaulBetts still the same for me! – Markus Hütter Jan 30 '15 at 11:45
  • I'd really like to find the blog post mentioned in Paul's comment but it appears to be gone again. If it's gone for good by some chance, is there another good resource for learning about this? – Sean Jan 11 '16 at 21:46
  • 5
    Blog post down for me. Here is the latest snapshot from archive.org: http://web.archive.org/web/20160417041642/http://blog.paulbetts.org/index.php/2011/04/04/using-reactiveui-with-mvvm-light-or-any-other-framework/ – Jared Thirsk Feb 05 '17 at 09:38