Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactiveProperty - MVVM & Async Extensions for Rx
Search
Yoshifumi Kawai
October 08, 2011
Technology
0
27
ReactiveProperty - MVVM & Async Extensions for Rx
Yoshifumi Kawai
October 08, 2011
Tweet
Share
More Decks by Yoshifumi Kawai
See All by Yoshifumi Kawai
CysharpのOSS群から見るModern C#の現在地
neuecc
2
12k
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
28k
.NETの非同期戦略とUnityとの相互運用
neuecc
3
28k
他言語がメインの場合のRustの活用法 - csbindgenによるC# x Rust FFI実践事例
neuecc
7
39k
Modern High Performance C# 2023 Edition
neuecc
4
14k
CEDEC 2023 モダンハイパフォーマンスC# 2023 Edition
neuecc
8
88k
C#11 による世界最速バイナリシリアライザー「MemoryPack」の作り方
neuecc
1
41k
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
neuecc
1
360
Deep Dive async/await in Unity with UniTask(UniRx.Async)
neuecc
0
370
Other Decks in Technology
See All in Technology
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
210
Two Blades, One Journey: Engineering While Managing
ohbarye
4
1.9k
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
640
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
140
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
320
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
100
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
140
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
350
Raycast Favorites × Script Command で実現するお手軽情報チェック
smasato
1
140
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
190
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
120
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
170
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
We Have a Design System, Now What?
morganepeng
51
7.4k
Fireside Chat
paigeccino
34
3.2k
The Language of Interfaces
destraynor
156
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
How to train your dragon (web standard)
notwaldorf
91
5.9k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Why Our Code Smells
bkeepers
PRO
336
57k
Building Adaptive Systems
keathley
40
2.4k
How STYLIGHT went responsive
nonsquared
98
5.4k
Transcript
ReactiveProperty MVVM & Async Extensions for Rx @neuecc - 2011/10/08
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
Reactive Extensions
Microsoftが開発している データアクセステクノロジ WP7には標準搭載、それ以外は追加インストー ル。.NET4.5には標準で載るかも載らないかも LINQ to Asynchronous LINQ to Events
イベントと非同期が LINQで書けるようになる
詳しくはWEBで。 某@ITで近日中に連載予定
ReactiveProperty
XAMLをUI作成に使うシーンの広がり ⚫ WPF ⚫ Silverlight ⚫ Windows Phone 7
⚫ WinRT(Windows 8) WPFが死ぬとかSilverlightは終了とかどうでもいい ⚫ XAMLをUI作成に使うアプリという枠で考える XAMLアプリケーション
XAMLアプリケーションはイベントの塊 ⚫ マウス・ジェスチャー・センサーはイベント ⚫ 通知(INotifyPropertyChanged)はイベント ⚫ それ経由によりデータバインドも同様にイベント XAMLアプリケーションは非同期の塊
⚫ WPFは除く、但しWinRTは非同期中心なのでデスク トップアプリケーションも非同期へ向かうトレンド イベント・非同期 => Reactive Extensions ⚫ これら二つはRxと非常に相性が良い RxとXAMLアプリケーション
RxをUIと繋げやすくするためのライブラリ ⚫ RxそのままではXAMLとは繋がりにくい ⚫ 特に、MVVMとして、Viewが完全に分離されている 状態では不可能に近く、Rxの力をUIをコントロール することに活かしにくかった ReactivePropertyの中身
⚫ UIとRxを接続するためのクラス群 ⚫ 非同期をより簡単にするための拡張メソッド群 ReactivePropertyとは
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
ぜひ、試してください! まとめ