Reactive Extensions v2.0
Upcoming SlideShare
Loading in...5
×
 

Reactive Extensions v2.0

on

  • 2,618 views

#slintky

#slintky

Statistics

Views

Total Views
2,618
Views on SlideShare
2,609
Embed Views
9

Actions

Likes
3
Downloads
18
Comments
0

4 Embeds 9

https://twimg0-a.akamaihd.net 4
http://a0.twimg.com 3
https://si0.twimg.com 1
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Reactive Extensions v2.0 Reactive Extensions v2.0 Presentation Transcript

    • Reactive Extensions v 2.0 (+ Silverlight 5) @neuecc 2012/3/31 #slintky
    • Profile Twitter => @neuecc HN => neuecc  読むときは“のいえ”と読ませてます  サイトのドメイン(特に意味はない)を繋いだだけ で、識別子になればそれだけでいいと思って発音考 えてなかったので割とアレ  Microsoft MVP for Visual C#(2011/4-)  明日、期限切れor更新の勧告が!  というわけで若干そわそわ中
    • サイト http://neue.cc/ C#とかLINQ 配色がアレ
    • linq.js http://linqjs.codeplex.com/ LINQのJavaScript移植
    • ReactiveProperty http://reactiveproperty.codeplex.com/ Rxスタイルのバインディング補助ライブラリ .NET4/SL5/SL5/WP7.1 対応
    • ReactiveOAuth http://reactiveoauth.codeplex.com/ Rxを使った非同期系OAuthライブラリ .NET4/SL5/SL5/WP7.1 対応
    • What is Rx?
    • LINQ to EventsLINQ to Asynchronous
    • Demo
    • History in BCL??? (Future) RxJS 2.0 Beta (2011/12/30) mono-reactive Rx v1.0 (2011/1/21) Rx v2.0 Beta (2011/1/21) Phone.Reactive Rx Experimental RxJS v1.0 (2010/3/18) Rx in DevLabs (2009/11/18)
    • 位置付け 準標準、的なライブラリ Microsoftが開発、配布しているものだけど標準ラ イブラリではない 将来的に標準入りするかはまだ分からない .NET3.5,4/SL3,4,5/WP7/WinRT/JavaScript 対応  Portable Library対応  ※ただしRx v2.0は.NET4.5/SL5/WinRT/WP7.1のみ Rx v1.0 ExperimentalはRx v2.0 Betaに吸収された SilverightではRx v2.0 BetaはSL5のみ利用可
    • Demo
    • SingleValue + Asynchronous  Rxは一つの値も複数の値も同じに扱ってしまう  利点でもあり欠点でもある// Synchronous SingleValuevar x = GetValue();// Asynchronous SingleValue(C# 5.0)var x = await GetValueAsync();// Asynchronous SingleValue(C# 4.0)GetValueAsync.ContinueWith(x => /* Action */); // TPL// Asynchronous Single or MultiValue(C# 4.0)GetValueAsync.Subscribe(x => /* Action */); // Rx
    • MultiValue + Asynchronous  非同期におけるMultiValueの元はイベント(例えば テキストチェンジ)だったりタイマーだったり// Synchronous MultiValueEnumerable.Range(1, 10) .Select(_ => WebRequest.Create().DownloadString()) .ForEach(s => { // Action });// Asynchronous MultiValueObservable.Interval(TimeSpan.FromSeconds(1)) .Select(_ => WebRequest.Create().DownloadStringAsync()) .Subscribe(s => { // Action });
    • Demo
    • Power of Rx  例外処理、Retry処理、Timeout処理などRxの持つ パワーは非常に強力  C# 5.0と合わせるなら一時的にTask->Rx変換して、 それをawaitするなどで利用可能  但しRetry系はObservable.DeferやFromAsyncを被せ ておかないと悲惨なことに……!  FromAsyncはRx v2.0で初お目見え、Taskとの連携用var res = await Observable.FromAsync(() => WebRequest.Create().GetResponseAsync()) .Retry();
    • link, linq, lync Reactive Extensions  http://msdn.microsoft.com/en-us/devlabs/gg577609 NuGetでRx v2.0を落とすときは-Preをつける  Install-Package Rx-Main –Pre RxJSの各種ライブラリバインディング  https://github.com/Reactive-Extensions  本体はDownload CenterかNuGetで @ITで連載やってます(絶賛原稿遅延中)  http://www.atmarkit.co.jp/fdotnet/introrx/index/index. html