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
14
ReactiveProperty - MVVM & Async Extensions for Rx
Yoshifumi Kawai
October 08, 2011
Tweet
Share
More Decks by Yoshifumi Kawai
See All by Yoshifumi Kawai
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
4.5k
.NETの非同期戦略とUnityとの相互運用
neuecc
3
5.5k
他言語がメインの場合のRustの活用法 - csbindgenによるC# x Rust FFI実践事例
neuecc
7
23k
Modern High Performance C# 2023 Edition
neuecc
4
12k
CEDEC 2023 モダンハイパフォーマンスC# 2023 Edition
neuecc
8
44k
C#11 による世界最速バイナリシリアライザー「MemoryPack」の作り方
neuecc
1
39k
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
neuecc
1
230
Deep Dive async/await in Unity with UniTask(UniRx.Async)
neuecc
0
220
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
neuecc
2
800
Other Decks in Technology
See All in Technology
LLM評価の落とし穴~開発者目線で気をつけるポイント~
rishigami
11
3.2k
Deno で作る快適な “as Code” プラットフォーム – TSKaigi 2024
pizzacat83
4
310
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
310
複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術 / Strike a balance between correctness and efficiency with fp-ts
kakehashi
5
3.5k
RailsConf 2024 Keynote "Startups on Rails in 2024"
irinanazarova
0
790
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.8k
20240509 CloudWatch でいろいろなものを監視してみよう
masaruogura
1
120
TypescriptでのContextualな構造化ロギングと社内全体への導入
leveragestech
3
580
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
13
4.9k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
12
7.9k
生成AIと産業向けソフトウェアの自動生成 〜 ハノーバーメッセ2024より〜
kioto
2
420
AWSの生成AI入門書を執筆しました🎉
minorun365
PRO
0
140
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
75
5.2k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Building an army of robots
kneath
300
41k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
Into the Great Unknown - MozCon
thekraken
15
1.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
GraphQLとの向き合い方2022年版
quramy
33
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.5k
How STYLIGHT went responsive
nonsquared
92
4.8k
Documentation Writing (for coders)
carmenintech
60
4k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
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
ぜひ、試してください! まとめ