SlideShare a Scribd company logo
ReactiveProperty
MVVM & Async Extensions for Rx



                  @neuecc - 2011/10/08
Profile
 Twitter: @neuecc
 HN : neuecc ("のいえ"と読ませています)

 Microsoft   MVP for C# LINQ

 Blog   : http://neue.cc/
     LINQとかReactive Extensions(Rx)のことがメイン

 CodePlexに色々ライブラリ公開しています
     LINQ to ObjectsのJavaScript実装 : linq.js
     単体テスト用拡張メソッド : Chaining Assertion
     生SQL文ベースのDB用ヘルパー : DbExecutor
Reactive Extensions
Microsoftが開発している
データアクセステクノロジ
WP7には標準搭載、それ以外は追加インストー
ル。.NET4.5には標準で載るかも載らないかも



LINQ to Asynchronous
LINQ to Events

イベントと非同期が
LINQで書けるようになる
詳しくはWEBで。
某@ITで近日中に連載予定
ReactiveProperty
XAMLアプリケーション
 XAMLをUI作成に使うシーンの広がり
    WPF
    Silverlight
    Windows Phone 7
    WinRT(Windows 8)

 WPFが死ぬとかSilverlightは終了とかどうでもいい
    XAMLをUI作成に使うアプリという枠で考える
RxとXAMLアプリケーション
 XAMLアプリケーションはイベントの塊
    マウス・ジェスチャー・センサーはイベント
    通知(INotifyPropertyChanged)はイベント
        それ経由によりデータバインドも同様にイベント


 XAMLアプリケーションは非同期の塊
    WPFは除く、但しWinRTは非同期中心なのでデスク
     トップアプリケーションも非同期へ向かうトレンド

 イベント・非同期       => Reactive Extensions
    これら二つはRxと非常に相性が良い
ReactivePropertyとは
 RxをUIと繋げやすくするためのライブラリ
    RxそのままではXAMLとは繋がりにくい
    特に、MVVMとして、Viewが完全に分離されている
     状態では不可能に近く、Rxの力をUIをコントロール
     することに活かしにくかった

 ReactivePropertyの中身
    UIとRxを接続するためのクラス群
    非同期をより簡単にするための拡張メソッド群
Demo
言語が思考を規定する
(サピア=ウォーフの仮説)
フレームワーク/パターンは?
 表現力を広げるものである
 同時に、表現力を縛るものでもある
    悪い意味ではなく、縛る「ため」もある
 フレームワーク/パターンも思考を規定する


 常に進化を模索しよう
    不変の正しさなんて存在しない
        時代が、対象が、前提が変わる、その中で変わらないも
         のなんてあるわけがない
        あるとしたら、抽象すぎて役にたたないもの
        例えばObjectクラス(全ての共通)とかね
            大事なのだけど、そのままでは何も使えない
新しいパラダイムへ
 Reactive   Extensionsは異質でしょう
     LINQも登場時は異質のものとして扱われましたね
 それをフルに活用するReactivePropertyも相当異質


 だからこそ、そこに次の解があるのでは?
     ないかもしれませんがそんなものは知りません:)


 新しいパラダイムを楽しもう!
     F is for Fun! – F#
 All   or Nothingではない
     共存し融合したとき、次の世代へ進むのでは
まとめ
 ダウンロード・サンプルはCodeplexにあります
    http://reactiveproperty.codeplex.com/
    NuGetでインストールすることも可能

 日本語での紹介・説明の記事はこちらに
    http://neue.cc/2011/10/07_346.html

 ぜひ、試してください!

More Related Content

ReactiveProperty - slintokyo4