<<< Previous speaker next speaker >>>

Erik Meijer

 Erik  Meijer

Erik Meijer is an architect in the Microsoft SQL server division where he currently works together with the Microsoft Visual C# and the Microsoft Visual Basic language design teams on data integration in programming languages.

Prior to joining Microsoft he was an associate professor at Utrecht University and adjunct professor at the Oregon Graduate Institute.

Erik is one of the designers of the standard functional programming language Haskell98 and more recently the Cw language.

Presentation: "Democratizing The Cloud With The .NET Reactive Framework Rx"

Time: Friday 11:30 - 12:30

Location: Concordia


Remember that the "A" in AJAX stands for "Asynchronous". Mashups, Web, and Cloud applications consist of a mixture of asynchronous web service calls and asynchronous event driven UI code. This talk explains how to model such reactive applications using push-based, observable, collections. Observable collections correspond to the well-known Subject/Observer design pattern, and implement two new standard interfaces IObservable and IObserver. These interfaces are the mirror image, or mathematical dual, of the familiar IEnumerable and IEnumerator interfaces which represent the pull-based collections that are the basis of the Iterator design pattern and LINQ. The enumerator interfaces combine data by synchronously pulling from a wide variety of concrete types such as arrays, hash tables, lists. The observable interfaces coordinate data that gets pushed asynchronously from a wide variety of concrete types such as Task, .NET events, APM, and F#'s first class events and async workflows. Surprisingly, we can define the LINQ standard sequence operators over both pairs of interfaces. As a result, we can glue together complex event processing and asynchronous programs using declarative LINQ queries.

Rx is part of the Business Platform Division and Live Labs "Cloud Programmability" project that aims to democratize the Cloud by providing tools and libraries to radically simplify the development of data intensive Cloud applications.