いうのはフォーラムじゃなくてBlogのほうでちゃんと告知してください......。リリースから半月近く経つのに、まだBlogのほうは更新されてないという。Extensionsを学習するためのリソースまとめとしてまとめましたが、そのうちDLL内容がまるっと変わったので、そこの部分を修正します。学習リソースについては変りないので、以前のまとめ記事をそのまま参照してください。7に標準搭載されているものは(当然)変わりはありません。最近WP7本体のアップデートにコソッと紛れて更新(バグフィックス)されたようですけど。itからDownloadするといいでしょう。Platformsを選べばよいかと思います。StableとExperimentalがあるように、安定版と実験版に分かれています。現時点ではそのページのExperimentalをクリックしてもExperimentalは手に入りません(なにそれ......)。Releaseから入手するといいでしょう。バージョン番号は、Stableは1.0.10425、Experimentalは1.1.10425になっています。何だかんだで更新頻度が高いので、NuGet経由での利用が一番お薦めです。NuGetの画面は新旧入り乱れていて何を入れていいか分からないカオスになっていたりして。説明すると、Rx-Mainとか、名前がRx-になっているものが新しいもので選ぶべきもの。-のものは古い残骸なので無視してください。NuGet経由で入るものはExperimentalのほうになります。今回からDLL類の分類がばっさり変わりました。(NuGetではRx-Main)以前あったCoreExは消滅し、コアコンポーネントはSystem.Reactiveのみとなりました。名前空間も全てSystem.Reactive以下に集められていて、例えば今までObservableクラスはSystem.Linqでしたが、今回よりSystem.Reactive.Linqに変更されました(拡張メソッドの利用に名前空間の参照は必須なので、この名前空間のusingは忘れずに)。(NuGetではRx-WPF/Rx-Silverlight)WPF/Silverlight向けでDispatcherに対するObserveOnとSubscribeOnのオーバーロードが追加されています。Dispatcher.CurrentDispatcherに対してObserveOn/SubscribeOnを行うObserveOnDispatcher/SubscribeOnDispatcherの利用もこのDLLの参照が必要になりました。それとDispatcherに対してBeginInvokeして実行するスケジューラDispatcherSchedulerが追加されました。WPF/SilverlightでRxを使う場合はこれの参照は必需と思われます。NuGetを使う場合は依存の解決で、これを選択するとRx-Mainも入れてくれるので、こちらからInstallすると良いでしょう。(NuGetではRx-WinForms)WindowsFormsのControlに対するObserveOnとSubscribeOnのオーバーロードが追加されています。それとControlScheduler(Controlに対してBeginInvokeして実行するスケジューラ)。いうわけで、その名の通りWinFormsで使う場合だけ、あると便利。(NuGetではRx-Providers)Qbservableが収納されています。QbservableはIEnumerableに対するIQueryableみたいなもので、式木からObservableを生成するためのもの。今のとこ有効活用されている例も人もいないと思われます。(というかよく正式リリースにも生き残ったものだ、ぐらいの)。Observableの略だそうで。Twitterを非同期しかないSilverlightでやるなら、これを使うのが適切でしょう。現状だとコールバックでどうだのという格好悪い仕組みなので。(但し、System.Reactive.Providersは現状ではDesktop版にしか同梱されていませんが)。WMIに対するSQLで、クエリ結果はイベント(つまりRx)になる。非常に都合よくQbservableに当てはまるようになってますね。なってるんですが、そう都合よく当てはまるのはこれぐらいしかないのではないか、感もあったり。SqlだってSqlCommandのBeginExecuteReaderでやればIQueryableじゃなくてIQbservableの出番なんですよぅー。......とはいっても、誰がやるかって話ですね。(NuGetではRx-Testing)ユニットテスト用のモック生成クラス群。使いやすさ的には個人的にはちょっと微妙で、今一つ上手く活用出来なくて色々見送り中。FromEvent/FromEventPatternBufferWithCount/BufferWithTimeが統合されてメソッド名がBufferになった、程度の変更は割とどうでもいいのですが、Rxの中核であるFromEventに大きな変更があったのは見逃せません。今までFromEventというメソッド名だったものはFromEventPatternに変わりました。戻り値がIEventからEventPatternというものになりましたが、中身はプロパティにSenderとEventArgsを持つという、ほとんど同じものなので、感覚的には一緒です。今までの私の記事や古いウェブ上の記事を見る際にFromEventが使われていたら、それはFromEventPatternに置き換えてください。すれば、そのままで動きます。そのうち使い方の説明とか出てくると思うのでそれ待ちで......。ところでInteractiveはどうしたの?ClientProfileは?Asyncは?死にました。いうのもアレですが、とりあえず先行きは不透明です。少なくともStableに同梱されることはないそうです。Experimental側でのリリースは、一応計画はされているようですが、現状は同梱されていません。なるんでしょうかねえ......。Interactiveは欲しい人はNuGetに古いのが残っているので、それを使えば、ですね......。Experimentalさて、今のところ、どのメソッドが実験的とされているのか、見てみましょう。ExperimentalAttributeでマークされているので、確認はコードで容易に出来ます。追加のオーバーロードのみ、通常のはExperimentalではないWhileあまり大したものは入ってないようなので、そんな気にすることもないですね。Expandは是非入れてきて欲しいところなのだけど。CreateやStartのオーバーロードはかなりややこしい事になっているので、実験的扱いなのは納得。ver.0.3.0.0そんな大移動があったわけでReactiveOAuthも動かなくなってしまった。いうわけで更新しました(WP7版の人は気にしなくてもいいです)。ReactiveOAuth機能は変わってなし。最新版のRxで動くように、というだけです。コードが、とにかく名前空間が変わったので全部書き換えて、かなり面倒......。一部のメソッドは名前が変わったので、WP7版と完全にコードを共有していたので発狂。ifディレクティブでメソッド呼び出し部分をひたすら書き換え、などというのは見通しも悪いし格好悪いしで最悪なので、別の方法として、WP7側に拡張メソッド作ってコード上の互換を維持するようにしました。}}他にも挙動が若干変わってるのがあって原因掴むのに泣きそうになったりとか、思った以上に大変だった......。Stableと銘打ってるのに、次にこのクラスの大変更があったらさすがにブチ切れます。Extensions(Rxx)コミュニティから面白いライブラリも上がってきています。HomeRx拡張メソッド集。3.0の時も俺々拡張メソッドライブラリがいっぱい出てきましたが、そのノリですね。実際、Rx自体は原始的な機能のみなので、非同期処理とかイベント処理にフォーカスする場合は、もう一つ上の層で軽くラップしたライブラリは間違いなく必要だなと思っていますので、こういうのはいいな、と。内部はこれ)かなり重宝しています。余裕が出たら、このRxxプロジェクトにJoinしたいな、と思ってます。Labsに所属)による、Rxの本が今年の秋頃に出る予定です。執筆陣が豪華だしページ数も現時点amazon表示で300ページと、立派な仕上がりを予感させます。私は予約したよ!まとめ今回こそStableなはずなので、ようやーく人に自信を持って薦められるようになりました!いやマヂで。API的にも多分、じゃなくて絶対安定したわけなので、飛び込むなら今!です。開発ブーストアップ」@関東でWP7+Rxのセッションをします。入門編として、主に非同期処理にフォーカスして、今すぐコピペで使ってコールバックを撲殺しよう、といった内容を考えていますので、是非聞きに来てください。https://github.com/neuecc/Blog2。