dchaib/Caliburn.Micro.ReactiveUI

Do not duplicate Caliburn.Micro code

tibel opened this issue · 4 comments

Instead of duplicating Caliburn.Micro source, I think it would be better to use an approach like:
Using ReactiveUI with MVVM Light (or any other framework!)

This would reduce your work, if Caliburn.Micro gets updated/changed. As currently you have to replicate all changes of a new Caliburn.Micro version.

That's how I started to use both, but with this, you still inherit from Caliburn.Micro's ViewModelBase, not ReactiveUI's ReactiveObject. I wanted to inherit from the latter, hence this library.

What was the reason not to inherit from CM classes?

First of all, with the method described in your link, you need to add a few lines of code several times in all your applications. It doesn't feel really efficient or easily maintainable.

Second, with a new implementation of screens and conductors, it is easy to adapt them to Reactive UI. I haven't found it necessary yet, but it could happen. After all, the implementations provided in CM are just default implementations. I had some concerns forking/duplicating the code from CM, but the code hasn't changed that much, so it shouldn't be a big problem in the long term.

The 2 options are clearly valid though and everybody is free to use the one they prefer. Both should be easy, thanks to either Paul's post or this library (hopefully).

PS Sorry for the delay, I hadn't seen your last comment...

Thanks