Is ReactiveUI Production Ready?

Let’s go through your concerns piece by piece:

#1. “Whacky naming and conventions.”

Now that ReactiveUI 4.1+ has CallerMemberName, you don’t have to use the conventions at all (and even then, you can override them via RxApp.GetFieldNameForPropertyFunc). Just write a property as:

int iCanNameThisWhateverIWant;
public int SomeProperty {
    get { return iCanNameThisWhateverIWant; }
    set { this.RaiseAndSetIfChanged(ref iCanNameThisWhateverIWant, value); }
}

#2. Lack of documentation/samples

This is legit, but here’s some more docs / samples:

  • http://docs.reactiveui.net/ (this is the official ReactiveUI documentation, a work in progress but definitely where you want to start)
  • https://github.com/reactiveui/ReactiveUI.Samples
  • https://github.com/reactiveui/RxUI_QCon
  • https://github.com/play/play-windows

#3. “I would have thought a far better approach would be to define a very simple interface and then provide extension methods within ReactiveUI to facilitate all the requisite overloads”

Implement IRxUILogger instead, it has a scant two methods 🙂 ReactiveUI will fill in the rest. IRxUIFullLogger is only there if you need it.

“In addition, there’s this weird IWantsToRegisterStuff interface “

You don’t need to know about this 🙂 This is only for dealing with ReactiveUI initializing itself so that you don’t have to have boilerplate code.

  1. “I suspect it would be horribly confusing having both intermingled in one’s code base.”

Not really. Just think of it as “MVVM Light with SuperPowers”.

Leave a Comment

File not found.