Domanda

Capisco le basi di Rx. Dove sto lottando è come si sarebbe effettivamente utilizzare questo al di là di esempi accademici? Quali sono alcuni comuni, semplici scenari del mondo reale in cui RX è una soluzione molto migliore di quello che abbiamo oggi in .NET?

È stato utile?

Soluzione

Per un gruppo di buoni esempi, vedi i 101 Rx campioni wiki

Altri suggerimenti

Rx consente di scrivere il codice che orchestra eventi concomitanti insieme. Se avete mai usato il TPL (vale a dire Task), poi ha dovuto fare salti mortali per cercare di contorte ContinueWith o WaitAll sulle cose giuste, Rx è per voi.

Per esempio, il flusso di lavoro di "Per ogni elemento in questo array, chiamare un servizio web, e quando tutte queste richieste di tornare, fare qualcosa di diverso. Se uno di loro non riescono, fallire il tutto".

La divulgazione, spudorato avanti: Il libro che Jesse Liberty e ho scritto su Rx è stato progettato per risolvere proprio questa domanda: "Come si usa Rx nel mio lavoro giorno per giorno?"; "Cosa posso do con questo?"

Prima di tutto, IObservable è un evento . Quindi, in qualsiasi luogo si utilizzano gli eventi internamente, è possibile utilizzare IObservable -. E se in seguito necessario applicare LINQ a questo evento, sei in grado di farlo senza refactoring

In secondo luogo, RX è adatto per tutte le situazioni in cui è necessario eseguire il codice asynchronousely . Ad esempio, la chiamata di un servizio Web, o il caricamento di un'immagine di grandi dimensioni.

Ma quando si inizia davvero a brillare - se il programma raggiunge una certa "massa critica" di utilizzo IObservable e si avvia conciliano differenti osservabili si sarebbe stupito di come semplice un po ' compiti diventano.

  • measurments dispositivo
  • Dati ritornassi in oltre un autobus messaggio

In entrambi i casi la società, il modo standard per ricevere i dati avviene tramite eventi, ma se voglio sintassi di query, o la composizione, poi RX dà a me in cui gli eventi non.

Rx è molto generale quindi ha utilità illimitata, proprio come IEnumerable / IEnumerator ha utility illimitata. IE tira valori, IO spinge valori.

Foreach è un esempio concreto di cui IEnumerables tornare utile, ma che non spiega IEnumerable, o la resa o niente. Lo stesso vale con Rx.

Essere in grado di guardare qualcosa sia da un punto di tiro di vista, o di un punto di spinta di vista, e di essere in grado di controllare la direzione o mezzi, è molto potente, perché ora si può spingere e tirare calcoli intorno a volontà, utilizzando operatori di query LINQ per "libero", contro un IO, perché è il duplice matematica di IE.

Ho appena avuto il mio primo sguardo a Rx, ma un progetto divertente lo userò per è la creazione di un widget Silverlight che visualizza l'attività nella nostra applicazione web ASP.NET MVC (che sono stati chiamati i metodi d'azione, da quale utente , eccetera). Sembra che Rx può aiutare con un sacco di cose in questo progetto, come la gestione della concorrenza e limitazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top