reactive extensions, rx
Post on 10-May-2015
1.790 Views
Preview:
TRANSCRIPT
Reactive Extensions“democratize cloud”
Dima Pasko
about me
Kharkiv – Ciklum (Scale Point) - .NET – podcasts – open source
Erik MeijerProfessor at Utrecht
UniversityOne of the designers
of HaskellMicrosoft Architect LINQVoltaRx
Rx mission“Rx is a library for composing
asynchronous and event-based programs using observable collections.”
Rx current version• Base interfaces in BCL .NET 4 and
WP7• Stable version: v1.0.10621
Experimental Release: v1.1.11011 Last update: October 12, 2011
• http://msdn.microsoft.com/en-us/data/gg577609
Rx for.NET
.NET 3.5 SP1 .NET 4 .NET Framework 4.5 (with Metro support
on Windows 8 Developer Preview)
Silverlight Silverlight 4 Silverlight 5 Windows Phone
Java script
“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();}
demo #1Simple example
exception handlingObservable.Catch()
Observable.Throw()Observable.Retry()Observable.Timeout()
demo #2Exception handling
“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 #3Big 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/
“Anna”
http://github.com/jfromaniello/Anna
domain events
http://chaliy.name/archive/2010/1/business_logic_rx_example
TweetSharp.Rx
https://github.com/jhollingworth/TweetSharp.Rx
Rx in books
Programming Reactive Extensions and LINQJesse Liberty, Paul Betts
http://www.amazon.com/Programming-Reactive-Extensions-Jesse-Liberty/dp/1430237473/
out of scope• Hot&Cold• Marble diagrams• IQbservable<T>
(IQueryable<T> + IObservable<T>)
• ISubject, Subject<T>• ReactiveJS• ….
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 Examples
http://rxworkshop.codeplex.com/
summary
questionsdimapasko@gmail.compad@ciklum.net
@dimapasko
31337
top related