ReactiveUI, View / ViewModel Injection und DI im Allgemeinen

n letzter Zeit habe ich versucht, mich in das neue Zeitalter der UI-Entwicklung zu begeben, und ReactiveUI entdeckt. Ich liebe seine deklarative Natur.

Ich wollte einen vollständigen Wechsel vornehmen, also habe ich versucht zu verstehen, wie die Dinge in dieser neuen Welt von ReactiveUI gemacht werden. Ich habe mich für ReactiveUI entschieden, weil ich gesehen habe, dass das von einem sehr klugen Kerl (Paul C. Betts) gepflegt wird.

Ich bin sehr neu darin und werde StackOverflow wahrscheinlich mit Fragen darüber überschwemmen, weil ich eine enorme Kraft habe und denke, dass es verdient, gelernt zu werdenund gemeistert.

Kommen wir zu den Details:

Ich habe immer View-First verwendet. Ich bin ein erfahrener Benutzer des Cinch Framework http: //cinch.codeplex.com)

It verwendet MEF, um die ViewModels in jede View einzufügen. Sie müssen Ihr ViewModel nur mit [ViewModel ("SampleView")] dekorieren und Ihrer View (ViewModelLocator.ViewModel = "SampleView") eine angehängte Eigenschaft hinzufügen. Wenn die View geladen wird, wird das entsprechende ViewModel als sein instanziiert und injiziert DatenKontext mit dem von Ihnen gewählten Lebenszyklus.

Dieser Mechanismus ist zwar gültig, weist jedoch einige Nachteile auf. Das Schlimmste von ihnen: Es verwendet einen Locator.

Wie Mark Seemann in seinem Buch vorschlägt, ist ServiceLocator ein Anti-Pattern, das vermieden werden sollte.

So lautet meine erste Frage: Ist ReactiveUI auf einer Locator-basierten Infrastruktur aufgebaut? View-First oder ViewModel-First? Was ist besser in Bezug auf bewährte Methoden, Entkopplung, SOLID und ähnliches, was ein verrückter Microsoft Clean Code-Liebhaber wie ich befürchtet? Was bringt mich dazu, besser zu schlafen und meine Bewerbung mit all dieser Güte zu versehen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage