2. about me
Kharkiv – Ciklum (Scale Point) - .NET – podcasts – open source
3. Erik Meijer
Professor at Utrecht
University
One of the designers of
Haskell
Microsoft Architect
LINQ
Volta
Rx
4. Rx mission
“Rx is a library for composing asynchronous
and event-based programs using observable
collections.”
5. 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
6. 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
8. “observable”
interface IObservable out
interface IEnumerable out
IDisposable Subscribe IObserver
IEnumerator Get
interface IEnumerator out IDisposable
interface IObserver in
bool Move
void On
get
void On Exception
void
void On
25. Rx in books
Programming Reactive Extensions and LINQ
Jesse Liberty, Paul Betts
http://www.amazon.com/Programming-Reactive-Extensions-Jesse-Liberty/dp/1430237473/
27. information
Rx team blog
http://blogs.msdn.com/rxteam
DevLabs
http://msdn.microsoft.com/en-us/data/gg577609
MSDN forums
http://social.msdn.microsoft.com/Forums/en-US/rx
Channel9
http://channel9.msdn.com/Tags/Rx
Wiki
http://rxwiki.wikidot.com
Examples
http://rxworkshop.codeplex.com/
давайте вспомним buzzwords: Azure, Silverlight, Windows Phone
Speaker tips:The essential difference is who controls how the data is received.Philosophically this is nothing but how the application and the environment work together.Looking from the application’s point of view:Does it ask the environment – interactively – for data? enumerableDoes it passively wait for the environment to send data and react to it? observableBoth are complementary models. One doesn’t (aim to) replace the other.Matter of which one aligns more closely to which model:SQL’ s TDS protocol is pull-based, hence IE<T> is the best fit.Stock broker services may be push-based, hence IO<T> is a better match.Will see how one can convert between those.