2011-04-09 10 views
5

Para familiarizarme con RX, estoy buscando ejemplos donde RX se utilice en proyectos del "mundo real".Uso de extensiones reactivas en el "mundo real"

Estoy interesado en ambos, la versión .NET o la versión de JavaScript. Las referencias a proyectos de fuente cerrada serían interesantes. Los proyectos de código abierto serían aún más interesantes.

También sería interesante por qué RX es una buena opción para esos proyectos.

No estoy buscando tutoriales o presentaciones.

+0

Respondo exactamente esta pregunta en una serie de publicaciones en mi blog: http://rehansaeed.co.uk/reactive-extensions-part1-replacing-events/ –

Respuesta

12

En menos de una hora pude añadir soporte Rx a MassTransit, una fuente abierta ESB:

https://github.com/MassTransit/MassTransit/tree/master/src/MassTransit.Reactive

Actualización: En cuanto a por qué es un buen ajuste, que ya tenía un mecanismo de Suscripción/Anulación de suscripción en su lugar. Agregar soporte Rx significa que esas suscripciones ahora se pueden componer juntas fácilmente. Por ejemplo, puede tener dos tipos de mensajes que comparten algunos CorrelationId. Con Rx puede trivialmente Join() los mensajes publicados por dicho identificador:

var someMessages = bus.AsObservable<SomeMessage>(); 
var otherMessages = bus.AsObservable<AnotherMessage>(); 

var joined = from s in someMessages 
      join o in otherMessages 
       on s.CorrelationId equals o.CorrelationId 
      select new { s.Something, o.OtherThing }; 

joined.Subscribe(x => Console.WriteLine(x)); 

también: Compruebe hacia fuera https://github.com/reactiveui/ReactiveUI de un marco MVVM alimentado-Rx focalización XAML (WPF, Silverlight, WP), iOS y Android. Muy, muy bueno.

+0

Lamento resucitar una vieja pregunta, pero he estado recientemente jugando con su extensión reactiva a MT - ¿Alguna idea de cómo uno puede obtener "jugar bien" con los planificadores de pruebas de unidades, como el HistoricalScheduler? (¡Implementación muy limpia, por cierto!) – JerKimball

+0

No me puedo atribuir el mérito de gran parte de su estado actual. :) Sugeriría abrir un problema en MassTransit para preguntar sobre esto (por favor marque @dahlbyk). – dahlbyk

1

Éstos son dos ejemplos comerciales de origen/CERRADO

  1. Los bancos están utilizando adaptadores Rx sobre sus infraestructuras bus de mensajes.

  2. Los fabricantes de Nirvana, un producto de transmisión web ofrecerán una API basada en su next release del producto.

Cuestiones relacionadas