Microsoft is previewing extensions for .Net catering to asynchronous and event-based programming.
The company's Rx (Reactive Extensions for .Net), downloadable from Microsoft's DevLabs site, enable programmers to write "succinct declarative code to orchestrate and coordinate asynchronous and event-based programs based on familiar .Net idioms and patterns," S. Somasegar, senior vice president of the Microsoft developer division, said in a blog entry.
"Rx has a strong theoretical basis by using the duality between the classic Iterator and Observer design patterns to simplify controlling asynchrony. By combining the expressiveness of LINQ (Language Integrated Query) with the elegance of category theory, Rx allows programmers to write asynchronous code without performing cruel and unnatural acts,' Somasegar said.
Iterator design patterns, according to Microsoft, provide an idiomatic way of writing code where an enumerator accesses elements of a collection by pulling elements of a collection. Observer patterns involve writing code where an observer is notified of changes in the collection, providing a push-based collection.
The Reactive Extensions can be used from any .Net language, including F#. Microsoft's Silverlight Toolkit uses Rx to power the Silverlight Toolkit Drag and Drop framework, Somasegar said. The framework features a subset of Windows Presentation Foundation APIs for initiating and interacting with drag operations.