かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Reactive Extensions

Reactive Extensions再入門 その22「単一の値を取得するメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その21「GroupByUntilメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その20「GroupByメソッドでグルーピングしてみよう」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その19「AnyメソッドとAllメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

見せてもらおうじゃないかReactive Extensionsの性能とやらを! その2

前回Enumerable.Range vs Observable.Range + Publishを試してみました。結果としては、当然なんですがRxのほうが遅いということになりました。それはそうとして、本来分配するタイプじゃないものを無理やり分配するんじゃなくて、もともと分配するように作…

Reactive Extensions再入門 その18「CountメソッドとLongCountメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その17「集計するメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その16「最大、最少、平均を求めるメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

見せてもらおうじゃないか、Reactive Extensionsの性能とやらを!!

ということで、昨年のクリスマスイブのid:neueccさんの記事を読んで気になったので試してみました。 Reactive ExtensionsとPublishによるシーケンスの分配 記事の締めくくりに下記のように書いてあります。 注意しないといけないのは、ふつーのシーケンスが…

Reactive Extensions再入門 その15「To*****系メソッド」

!!注記!! コメントにあるneueccさんのコメントまでがこの記事です!(キリッ 過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門…

Reactive Extensions再入門 番外編「System.Reactive.Linq.Observableのメソッド一覧とメモ」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その13「最後の値を取得するLatestとMostRecentメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その14「Nextメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その11「Catchメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その12「Finallyメソッドとリソース解放」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

かっこいいReactive Extensionsの使い方の紹介

id:ZOETROPEさんの記事が凄く面白いのでお勧めです。センサーとかロボットとかとRxの組み合わせは素敵そうだと思ってましたが実際にやってる例ですね!かっこいい! Reactive Extensionsでロボット制御? Reactive ExtensionsをRTミドルウェアに適用してみる

Reactive Extensions再入門 その8「SkipとTakeメソッド」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その7「LINQスタイルの拡張メソッド」

修正履歴 2011/11/13 アップキャストをダウンキャストに修正 過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IOb…

前後の値を利用するって色々やり方あるのね・・・

id:neueccさんのBlogに書いてあった、値のペアを作る方法。Scanの存在と挙動は知ってたけどこういう風に使えるか!っていうのは思いつかなかった。こういうノウハウ少しずつためていかないとだな〜。備忘のため自分のBlogにもメモメモ。イディオムが今一番つ…

Reactive Extensions再入門 その6「HotなIObservableを作成するファクトリ」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

ReactivePropertyで値が変更されたタイミングで前の値と新しい値を取得する

先日TLを眺めてた時にid:neueccさんがコードをぺちぺちと貼ってたのを見て感動したのでメモっておきます。 var p = new ReactiveProperty<int>(1, mode: ReactivePropertyMode.RaiseLatestValueOnSubscribe); p.Zip(p.Skip(1), (x, y) => new { OldValue = x, New</int>…

Reactive Extensions再入門 その5「HotとCold」

過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Extensions再入門 …

Reactive Extensions再入門 その4「Timer系のファクトリメソッド」

2011/11/06 修正 TimerはHotだ(キリッ)と大嘘を書いてたので修正しましたm(_ _)m id:neueccさんに感謝です。 過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェー…

Reactive Extensions再入門 その3「IObservableのファクトリメソッド」

修正 2011/11/06 次回にHotなIObservableを説明するといいつつ説明できないため該当箇所を削除しました。 過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェー…

Reactive ExtensionsのForkJoinは何処へ消えた?

(not yet) 101 Rx Samplesでも序盤のほうに出てきたり、id:neueccさんのBlogにも「それForkJoinでできるよ?」と暗に言ってるように聞こえるくらいバンバン出てきてたForkJoinですが、Rx-MainのStableでやってみるか!!と思ってみるとMSDN内のメソッドのド…

Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」

過去記事インデックス Reactive Extensions再入門 その1 IObservableインターフェースとIObserverインターフェース 前回の宣言通りに、Reactive Extensionsの機能の要となるIObservableとIObserverを実装して、その動作を確認します。まずは、Observerパタ…

Rx-Testingの使い方の記事がありました

id:ZOETROPEさんの記事ですが素敵です。名前を見て気になってたけど使い方がよくわからなかったRx-Testingの使い方がばっちり書いてあります。 Rx-Testingの使い方 後で使ってみよう。

Reactive Extensiions再入門 その1

修正履歴 2011/11/04 21:36 「Reactive Extensionsで提供されている機能」の「IObserver<T>生成へのショートカット 」の「ラムダ式からIObservable<T>を内部的に生成してくれる」を「ラムダ式からIObserver<T>を内部的に生成してくれる」に修正しました。ということで</t></t></t>…

Reactive Extensionsお題

1つ以上のIObservableからなる配列を渡された時、このIObservableから最後にSubscribeで受け取った値が全てtrueになったときはtrue, 1つでもfalseになったときはfalseになるIObservableを作り出したい。というので悩んでます。う〜ん。 public IObservable<bool> C</bool>…

KinkumaFramework 2.0.1.1(beta)をnugetにこっそり放流しました

IObservableからIInteractionRequestへの変換(WPF,SL) ValidationSummaryのReactivePropertyのサポート(SL) だけですが、自分が便利に使うためにnugetに固めて放流しました。このあとはTriggerActionをv1系列からひっぱってくる感じかな。

ReactivePropertyをValidationSummaryに対応させてみた

今作ってるKinkumaFramework 2.0は、ReactivePropertyとPrismで開発する際のライブラリを目指してるのですがMVVMのサポートはうすっぺらぺらになりそうです・・・。まぁそれは置いといてLabelとDescriptionViewerは対応できました。出来ましたというよりは、…

ReactivePropertyをSilverlightのLabelやDescriptionViewerに対応させる

さて、最近お気に入りのid:neueccさんのReactivePropertyですがSilverlightで画面作りを楽にしてくれるLabelやDescriptionViewerに対応させてみたいと思います。因みに、下記のようなViewModelを想定しています。 namespace RxPropLabelSample { using Syste…

PrismとReactivePropertyのつなぎ

繋ぎといっても大したことはしませんが、InteractionRequestに対して、こんな拡張メソッド用意してればいいのかなぁ? using System; using System.Reactive.Linq; using System.Reactive.Subjects; using Microsoft.Practices.Prism.Interactivity.Interact…

ReactivePropertyを使ってみた感想 イケテル!気持ちいい!ハードルは高い?

# 変更履歴 2011/10/17 コメントの指摘のとおり敷居が高いをハードルが高いに修正しました。id:neueccさんの作ったReactivePropertyが最近アツイので、今チマチマ作ってるWindows Phone 7のアプリケーションでも途中から組み込んで使ってみました。まだアプ…

ReactivePropertyが楽しい その2

前書いたのだと、毎回毎回内容をクリアしてるのでReactiveCollectionのうまみがほとんどないよね!ということなので、初期化して読み込みと続きのデータを読み込むとかいう例を書いてみました。参照設定とかネームスペースの設定さえしておけばLINQ Padでさ…

ReactivePropertyが楽しくて仕方がない

Commandと、その実行結果の紐づけが以下のように流れるようにさっくりと書ける。素敵すぎますよね!! // LINQ Padで実行 // Commandの定義 var command = new ReactiveCommand(); var collection = default(ReactiveCollection<string>); collection = command .Do(</string>…

MessengerのかわりにReactive ExtensionsのSubjectあたりを代用してみる

@ugaya40 ブログのやつ、エラー履歴のViewへの通知みたいな一方通行なものは、URL みたいにRx使って解決する方がよくないかな?2011-02-23 19:20:17 via みについ to @ugaya40 という呟きを見て、あぁ確かに出来そうだと思ったので岩永さんのコードは見てな…

Rx + WCF RIA Services = 簡単?? その3(via 非同期プログラミングはつらいよ(2))

前回書いたプログラムですが、LINQ星人として有名なid:neueccさんからZipメソッド内で副作用のあることをするのはいくない!って言われたので書き直してみました。 private EduDomainContext ctx = new EduDomainContext(); public void Load() { this.IsBus…

Rx + WCF RIA Services = 簡単?? その2(via 非同期プログラミングはつらいよ(2))

さて、前回書いたRx + WCF RIA Services = 簡単?? via(非同期プログラミングは辛いよ)ですが、コメントで追加の要件がきました!ということでやってみようと思います。 因みにReactive Extensionsを使わない場合の実装例はこちらを見てください。 非同期プロ…

Rx + WCF RIA Services = 簡単?? via(非同期プログラミングは辛いよ)

id:wave1008さんが非同期プログラミングは辛いよという記事を書かれていますが、このように非同期プログラミングは苦痛を伴うプログラミングです。しかし、id:neueccさんがコメントで書かれていますが、現時点で便利なライブラリとしてReactive Extensionsと…

MVVMの小さなサンプル サケ弁タイマー2

1つ前のサケ弁タイマーのサンプルですが、Modelに該当する部分をid:anis774さんのコードをマルパクリしていたのをReactive Extensions使うように書き直してみました。以下からダウンロードできます。 SakebenTimer2.zip 因みにModel部分のコードだけ以下に…

非同期処理を含むメソッドの単体テスト方法

Reactive Extensionsを使うと簡単に非同期処理を書くことが出来るのですが、単体テストをしようとすると非同期処理って非常にテストしづらいです・・・。 例えば以下のようなパターン var target = new TestTargetObject(); target.GetHogehoge(); // 例えば…

「奴はとんでもないものを盗んでいきました。LINQとRxです」

ということで、先日Twitterで呟きあってたことを頭の中で整理してみました。 まだ、いまいちもやっとするところはあるのですが、とりあえずたたき台としてアップします。因みに、ネタ元はこちら。 冬至のLINQ、Rx談義 そして、上記のつぶやきから感じたこと…

Reactive Extensions入門「まとめ」

2012/03/06 再入門という形で書き直しています。 http://d.hatena.ne.jp/okazuki/20120305/1329923070とりあえず、14回くらい書いたので現時点でのまとめです。 若干Reactive Extensionsに対する熱もさめてきたので、これからはペースが落ちると思われます!…

Reactive Extensions入門 14 「OKが出るまで待つ」

さて、Reactive ExtensionsのIObservableには、Publishというメソッドがあります。このメソッドは、IObservableが通知する値を塞き止めるような効果があります。 Publishメソッドが返すのは、IConnectableObservableという型で、こいつのConnectメソッドを呼…

Reactive Extensions入門 13「値を集めて回る」

LINQでお馴染み?Aggregateみたいな動きをするメソッドも当然Reactive Extensionsで使えます!! ただ、Aggregateは集計し終わった値だけ返しますが、集計途中の値を全て報告してくれるScanというメソッドもあります。 使い方は、どちらも同じで第一引数に初…

Reactive Extensions入門 12「非同期実行のためのメソッド」

なんだかんだで、このシリーズも12回目になりました。 説明順番は、見知ったもの、面白そうなものという順番なので特に意味はありませんが、今日は、Observableに定義されているメソッドの中から、非同期実行をIObservableにしてくれる人たちから一部分だけ…

Reactive Extensions入門 11「非同期処理用のSubject」

その名もAsyncSubjectです。非同期処理を自前で実装してIObservableを返すようなメソッドを作るときに使えます。 こいつは、OnCompleted()メソッドメソッドを呼び出すと、最後にOnNextした値を通知するようになります。特徴としては、OnCompleted()を呼ぶ前…

非同期処理を行うメソッドの戻り値は全てIObservableにしてしまえばいいんじゃないんだろうか

最近、タイトルの通りのことを思っています。 今の非同期処理のAPIは下のようなコールバックを渡す形や、完了イベントを処理する形が一般的だと思います。(あとはBegin〜とEnd〜のメソッドのペアとか) public void Hoge(int param, Action<int> callback) { // </int>…

Reactive Extensions入門 10「合成(SelectMany)」

さて、次はIQueryableから何かが通知されたら、それに応じた処理をしてIQueryableを返すという風にIQueryableを連鎖させるようなイメージの用途に使えるSelectManyメソッドを紹介します。 使い方は割と簡単で以下のように使えます。 var s = new Subject<int>(); </int>…