| 
View
 

Reactive Extensions

This version was saved 15 years, 5 months ago View current version     Page history
Saved by Chris Bilson
on May 6, 2011 at 10:52:22 am
 

Links

 

Notes 

  • nuget i Rx-All 
  • generators: Observable.Create<int>(...)
  • adapters:
    • Observable.FromEvent<MouseEventArgs>(...)
    • .FromEventPattern<MouseEventArgs>(frm, "MouseMove") <- uses reflection to find the event
  • composition
    • frm.MouseMove += (_, args) =>  { if (this) ... else if (that) ... } <- not composable
    • Observable.FromEventPattern<>(...).Select(...) <-  specific events, logic not in action, actions composable
    • crossing streams: Observable.___<>(...).SelectMany(evt => ...) 
  • schedulers
    • Observable.Timer(5.Seconds()) <- fires one event in 5 seconds
    • Which timer? Up to you. 
  • debugging
    • Use .Do to cause side effects (like Console.WriteLine) that you can observe to figure out what's going on 
  • Other stuff
    • .DistinctUntilChanged can de-dup an event stream
    • .Timestamp makes T into Timestamped<T> which 
    • Throttle: A----B--200ms----C -> A gets cancelled because B happened within throttle period 
  • Challenges
    • Challenge in learning Rx: there are a lot of operators 
  • Path Forward
    • Already on the Win7 Phone ROM
    • Unstable releases every 3 weeks-ish right now 
    • Stable releases: not as often, but supported, documentation, etc. .NET 4.0+, Silverlight 5, Win7 Phone
    • Binaries and doc comments are redistributable
    •  

Comments (0)

You don't have permission to comment on this page.