Pregunta

Me entender los conceptos básicos de Rx. ¿Dónde estoy luchando es cómo se utilizan realmente esto más allá de ejemplos académicos? ¿Cuáles son algunos comunes, simples escenarios del mundo real, donde Rx es una mejor solución mucho más de lo que tenemos hoy en día en .NET?

¿Fue útil?

Solución

Para un montón de buenos ejemplos, ver las 101 muestras Rx wiki

Otros consejos

Rx le permite escribir código que organiza eventos simultáneos juntos. Si alguna vez has usado el TPL (es decir, tareas), entonces tenía que hacer saltos mortales contorneados para tratar de ContinueWith o WaitAll en las cosas correctas, Rx es para usted.

Por ejemplo, el flujo de trabajo "para cada elemento de esta matriz, llamar a un servicio web, y cuando todas esas solicitudes proceden de vuelta, hacer otra cosa. Si alguno de ellos falla, falla todo el asunto".

Divulgación, Enchufe desvergonzado por delante: El libro que Jesse Liberty y yo escribimos sobre Rx fue diseñado para resolver exactamente esta pregunta: "¿Cómo uso Rx en mi trabajo del día a día?"; "¿Qué puedo lo con esto?"

En primer lugar, IObservable es un evento . Por lo que en cualquier lugar que utiliza internamente eventos, puede utilizar IObservable -. Y si más adelante necesita aplicar LINQ a este evento, que es capaz de hacerlo sin refactorización

En segundo lugar, RX es apto para cualquier situación en la que necesita para ejecutar su código asynchronousely . Por ejemplo, llamar a un servicio web, o cargar una imagen de gran tamaño.

Pero cuando realmente comienza a brillar - si su programa llega a cierta "masa crítica" de uso IObservable y empezar combinando diferentes observables Usted se sorprenderá de cómo fácil algunos tareas se vuelven.

  • measurments dispositivo
  • Datos comming en más de un bus de mensajes

En ambos casos ahora, la forma estándar para recibir los datos es a través de eventos, pero si quiero la sintaxis de consulta, o su composición, a continuación, RX me lo da donde los acontecimientos no lo hacen.

Rx es muy general por lo que tiene utilidad ilimitada, al igual que IEnumerable / IEnumerator tiene utilidad ilimitada. IE tira de valores, empuja IO valores.

Foreach es un ejemplo concreto de donde IEnumerables son útiles, pero eso no explica IEnumerable, o el rendimiento ni nada. Lo mismo ocurre con Rx.

Ser capaz de mirar algo desde un punto de atracción de la vista, o un punto de vista de empuje, y ser capaz de controlar la dirección o medio, es muy potente, porque ahora se puede empujar y cálculos de tracción a voluntad, el uso de operadores de consulta LINQ para "libre", en contra de un IO, porque es el doble matemática de IE.

acabo de tener mi primer vistazo a Rx, pero un proyecto divertido lo usaré para Silverlight está creando un widget que muestra la actividad en nuestra aplicación web ASP.NET MVC (que fueron llamados métodos de acción, mediante el cual el usuario , etc). Parece que Rx puede ayudar con muchas cosas en este proyecto, como la gestión de concurrencia y el límite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top