ReactiveProperty - slintokyo4

14
ReactiveProperty MVVM & Async Extensions for Rx @neuecc - 2011/10/08

description

http://neue.cc/2011/10/11_347.html

Transcript of ReactiveProperty - slintokyo4

Page 1: ReactiveProperty - slintokyo4

ReactiveProperty

MVVM & Async Extensions for Rx

@neuecc - 2011/10/08

Page 2: ReactiveProperty - slintokyo4

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

Profile

Page 3: ReactiveProperty - slintokyo4

Reactive Extensions

Page 4: ReactiveProperty - slintokyo4

Microsoftが開発している

データアクセステクノロジ WP7には標準搭載、それ以外は追加インストール。.NET4.5には標準で載るかも載らないかも

LINQ to Asynchronous

LINQ to Events

イベントと非同期が

LINQで書けるようになる

Page 5: ReactiveProperty - slintokyo4

詳しくはWEBで。 某@ITで近日中に連載予定

Page 6: ReactiveProperty - slintokyo4

ReactiveProperty

Page 7: ReactiveProperty - slintokyo4

XAMLをUI作成に使うシーンの広がり

WPF

Silverlight

Windows Phone 7

WinRT(Windows 8)

WPFが死ぬとかSilverlightは終了とかどうでもいい

XAMLをUI作成に使うアプリという枠で考える

XAMLアプリケーション

Page 8: ReactiveProperty - slintokyo4

XAMLアプリケーションはイベントの塊

マウス・ジェスチャー・センサーはイベント

通知(INotifyPropertyChanged)はイベント

それ経由によりデータバインドも同様にイベント

XAMLアプリケーションは非同期の塊

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

イベント・非同期 => Reactive Extensions

これら二つはRxと非常に相性が良い

RxとXAMLアプリケーション

Page 9: ReactiveProperty - slintokyo4

RxをUIと繋げやすくするためのライブラリ

RxそのままではXAMLとは繋がりにくい

特に、MVVMとして、Viewが完全に分離されている状態では不可能に近く、Rxの力をUIをコントロールすることに活かしにくかった

ReactivePropertyの中身

UIとRxを接続するためのクラス群

非同期をより簡単にするための拡張メソッド群

ReactivePropertyとは

Page 10: ReactiveProperty - slintokyo4

Demo

Page 11: ReactiveProperty - slintokyo4

言語が思考を規定する (サピア=ウォーフの仮説)

Page 12: ReactiveProperty - slintokyo4

表現力を広げるものである

同時に、表現力を縛るものでもある

悪い意味ではなく、縛る「ため」もある

フレームワーク/パターンも思考を規定する

常に進化を模索しよう

不変の正しさなんて存在しない

時代が、対象が、前提が変わる、その中で変わらないものなんてあるわけがない

あるとしたら、抽象すぎて役にたたないもの

例えばObjectクラス(全ての共通)とかね

大事なのだけど、そのままでは何も使えない

フレームワーク/パターンは?

Page 13: ReactiveProperty - slintokyo4

Reactive Extensionsは異質でしょう

LINQも登場時は異質のものとして扱われましたね

それをフルに活用するReactivePropertyも相当異質

だからこそ、そこに次の解があるのでは?

ないかもしれませんがそんなものは知りません:)

新しいパラダイムを楽しもう!

F is for Fun! – F#

All or Nothingではない

共存し融合したとき、次の世代へ進むのでは

新しいパラダイムへ

Page 14: ReactiveProperty - slintokyo4

ダウンロード・サンプルはCodeplexにあります

http://reactiveproperty.codeplex.com/

NuGetでインストールすることも可能

日本語での紹介・説明の記事はこちらに

http://neue.cc/2011/10/07_346.html

ぜひ、試してください!

まとめ