Ho esaminato la possibilità di utilizzare l'interfaccia utente reattiva nel codice di produzione. Alcune delle funzionalità sono davvero allettanti, ma temo di dover dipendere da questa libreria. Questi includono:La produzione ReactiveUI è pronta?
- Denominazione e convenzioni Whacky. Ad esempio, i membri protetti iniziano con lettere minuscole e il metodo
RaiseAndSetIfChanged
dipende dal membro privato che inizia con un trattino basso. Capisco che Paul Betts (autore di ReactiveUI) abbia uno sfondo rubino, quindi credo che sia da lì che deriva la strana denominazione. Tuttavia, ciò causerà un problema reale, poiché la denominazione standard (come per Stylecop) viene applicata durante il mio progetto. Anche se non fosse applicato, sarei preoccupato per la conseguente incoerenza nel nominare ciò che causerà. - Mancanza di documentazione/campioni. C'è della documentazione e un campione solitario. Tuttavia, la documentazione è solo una serie di (vecchi) post del blog e l'esempio è basato su V2 della libreria (è ora su V4).
Design strano, in parti. Ad esempio, la registrazione è astratta in modo da non assumere una dipendenza da un framework di registrazione specifico. Giusto. Tuttavia, poiché utilizzo log4net (e non NLog) mi servirà il mio adattatore. Penso che mi richiederà di implementare
IRxUIFullLogger
, che ha un crapload metrico di metodi in esso (ben oltre 50). Avrei pensato che un approccio migliore sarebbe quello di definire un'interfaccia molto semplice e quindi fornire metodi di estensione all'interno di ReactiveUI per facilitare tutti i sovraccarichi necessari. Inoltre, c'è questa strana interfacciaIWantsToRegisterStuff
da cui dipende l'assembly NLog, su cui non potrò dipendere (perché è un'interfaccia interna). Spero di non averne bisogno ...In ogni caso, la mia preoccupazione è il design generale della libreria. Qualcuno è stato morso da questo?
- Sto già utilizzando MVVM Light ampiamente. So che Paul ha fatto un post sul blog in cui spiega che è possibile utilizzare entrambi tecnicamente, ma la mia preoccupazione riguarda maggiormente la manutenibilità. Sospetto che sarebbe orribilmente difficile confonderlo tra loro nel codice base.
Qualcuno ha esperienza pratica con l'interfaccia utente reattiva in produzione? In tal caso, sei in grado di dissipare o risolvere uno dei miei dubbi sopra citati?
Se tutte le preoccupazioni che postate sono valide (cioè è proprio così che Rx è fatto) quindi semplicemente leggendo le preoccupazioni che postate, direi: non usarlo per il codice di produzione attuale. Oppure estrai e riduci le parti che ti servono. – stijn
Sono contento, anche se non ho ancora rilasciato il codice in produzione. Sono d'accordo sulle tue preoccupazioni con 2), quelli di noi che lo usano probabilmente hanno bisogno di saltare lì. Il 4, stavamo usando Caliburn con RXUI, ma da allora si sono fermati, ma non vedo nulla da MVVM Light che non preferisco o trovo il modo RXUI accettabile. Non penso che sarà difficile usare MVVM Light con esso. – kenny
Un uso di produzione di RXUI è GitHub per Windows http://windows.github.com/ – kenny