开发者

Reactive Framework for .NET examples that prove its usefulness [closed]

开发者 https://www.devze.com 2022-12-12 07:50 出处:网络
Closed. This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this
Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

开发者_开发问答

Closed 7 years ago.

Improve this question

There's been quite some hype around the new Reactive Framework in .NET 4.0. While I think I undestood its basic concept I am not completely sold that it is that useful. Can you come up with a good example (that is halfway easy to understand) that totally shows of the power and usefullness of Rx? Show something that makes life so much easier when done with Rx.


Here is a quick example. Program a drag operation in a fully declarative manner, using LINQ to events.

   //Create an observable with the initial position and dragged points using LINQ to Events
   var mouseDragPoints = from md in e.GetMouseDown()
                           let startpos=md.EventArgs.GetPosition(e)
                           from mm in e.GetMouseMove().Until(e.GetMouseUp())
                           select new
                           {
                             StartPos = startpos,
                             CurrentPos = mm.EventArgs.GetPosition(e),
                           };

And draw a line from startpos to current pos

//Subscribe and draw a line from start position to current position  
            mouseDragPoints.Subscribe  
                (item =>  
                { 
                  //Draw a line from item.Startpos to item.CurrentPos
                }
                ); 

As you can see, there are no event handlers all over the places, nor boolean variables for managing the state.

If you are curious about those GetEventName() methods, suggesting you to read this entire article and download the source code and play with it.

Read it here and play with the source >>


I wrote a demo step-by-step on my blog recently : http://blog.andrei.rinea.ro/2013/06/01/bing-it-on-reactive-extensions-story-code-and-slides/

I'm basically building a small app in WPF with Rx and Bing Search:

Reactive Framework for .NET examples that prove its usefulness [closed]

The app will wait till you stop typing and then do an async search and present the results. If before the results came you issue another search it will automatically drop the existing search.

You can force a search (to skip the waiting time) by pressing ENTER or the "Go!" button and can stop an ongoing search by pressing the Clear button. There is a busy indicator and some error handling (in case the network goes down, for example).

Main topics covered :

  • Creating an observable from an event (TextChanged, Button.Click etc)
  • Async delegate (async search)
  • TakeUntil extension
  • DistinctUntilChanged extension (including custom Equals)
  • Merge extension
  • Throttle extension
  • ObserveOn extension (for UI thread sync-ing)

.. and more!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号