Taming Time: A Deep Dive into the Reactive Extensions

Description

Traditional programming techniques pretend the program is in control of its environment, that they can freeze time and deal only with a world at rest. It's time to abandon the pretence. Devices like sensors and networks bring a continuous stream of information to your program, whether it's ready or not. Even the familiar mouse is a source of events that are outside your control! And even with .NET events and C# 5 async, our programming models for dealing with such data are ad hoc and leave us with a lot of manual work to do. Reactive programming replaces the ad hoc approach with a rich, structured set of tools that can be easily composed to perform sophisticated operations over data in motion. The Reactive Extensions provide a powerful, unified LINQ-style interface for handling and manipulating asynchronous events and data no matter where they come from. What's more, Rx's users love it so much they've ported it from .NET to JavaScript, Java, OS X and more. Find out how the Reactive Extensions help you to tame a variety of disparate inputs while keeping your app responsive, and why companies like GitHub and Netflix build their applications on the Rx foundation. Learn how the Reactive Extensions and traditional LINQ fit together and why the designers designed it the way they did. Take a trip insiSe the framework and see what's really going on when you use the Rx operators. And meet the worst named interface in the .NET framework.