reactive extensions
about me
Kharkov – Ciklum (Scale Point) - .NET – podcasts – open source
rx current version• Base interfaces in BCL .NET 4 and
WP7• Stable version: v1.0.10621• Experimental Release: v1.1.10621• Last update: June 29, 2011• http://msdn.microsoft.com/en-us/
data/gg577609
rx for.NET
.NET 3.5 SP1 .NET 4
Silverlight Silverlight 4 Silverlight 5 Windows Phone
Java script
rx mission“Rx is a library for composing
asynchronous and event-based programs using observable collections.”
“asynchronous”
“observable”interface IEnumerable<out T>{ IEnumerator<T> GetEnumerator();}
interface IEnumerator<out T> : IDisposable{ bool MoveNext(); T Current { get; } void Reset();}
interface IObservable<out T>{ IDisposable Subscribe(IObserver<T> observer);}
interface IObserver<in T>{ void OnNext(T value); void OnError(Exception ex); void OnCompleted();}
Environment
MoveN
ex
tGot next?
Application
On
Next
Have next!
IEnumerable<T>
IEnumerator<T>
IObservable<T>
IObserver<T>
Inte
racti
ve R
eactiv
e
IDisposableinterface IObservable<out T>{ IDisposable Subscribe(IObserver<T> observer);}
interface IObserver<in T>{ void OnNext(T value); void OnError(Exception ex); void OnCompleted();}
“composing”• Linq(Where, Take, Skip, Sum, Max,
Any, …)• Statements(If, Case, For, While,
DoWhile)• Combinators(Merge, Zip, Amb, …)• Exceptions(Catch, Retry, ..)• Rx(Delay, Throttle, Interval, Publish,
…)
“event-based”Observable.FromEventPattern()Observable.FromAsyncEventPattern()
ISchedulerObservable.OnserveOn()Observable.SubscribeOn(Scheduler.Tas
kPool)
demo
rx unit testing
more rxRx Contrib
http://rxcontrib.codeplex.com/ Reactive Extensions - Extensions (Rxx)
http://rxx.codeplex.com/ Rx Power Toys
http://rxpowertoys.codeplex.com/
examples
ReactiveUI
http://www.reactiveui.net/
domain events
http://chaliy.name/archive/2010/1/business_logic_rx_example
TweetSharp.Rx
https://github.com/jhollingworth/TweetSharp.Rx
rx in books
informationRx team blog
http://blogs.msdn.com/rxteamDevLabs
http://msdn.microsoft.com/en-us/data/gg577609MSDN forums
http://social.msdn.microsoft.com/Forums/en-US/rxChannel9
http://channel9.msdn.com/Tags/RxWiki
http://rxwiki.wikidot.com
summary
[email protected]@ciklum.net
@dimapasko
Top Related