Microsoftのドキュメントの他に、Microsoft Reactive(Rx)フレームワークの入門とチュートリアルはありますか?
また、Reactiveが従来の非同期コーディング技術を使用して解決するのが難しいプログラミングの問題を容易にする良い例(コード付き)は何ですか?
Microsoftのドキュメントの他に、Microsoft Reactive(Rx)フレームワークの入門とチュートリアルはありますか?
また、Reactiveが従来の非同期コーディング技術を使用して解決するのが難しいプログラミングの問題を容易にする良い例(コード付き)は何ですか?
回答:
更新:以下のブログ投稿は、私のオンラインブックwww.IntroToRx.comに置き換えられました。それは無料で利用できる包括的な19章の本です。あなたはそれをウェブ上で閲覧するか、あなたのkindle用のmobiバージョンをダウンロードすることができます。わずかな料金(〜99c / 77p)でアマゾンから直接入手することもできます。この本があなたのニーズや期待を満たしていない場合は、私(著者)に知らせてください。
ホット/コールドポストへのリンクをありがとう。これは全シリーズの一部にすぎませんが、
私はこのブログをRxの紹介的なもので更新し続けます。
より高度なものについては、Rxフォーラム(MSDN)にアクセスしてください。
これは、.NET Rxフレームワークのさまざまな機能の使用方法を示す多数のコード例が含まれたWikiサイトです。http://rxwiki.wikidot.com/101samples
私はこれがそこにある最も包括的なサイトであり、最初に始めるのが最も速いサイトだとわかりました。
Rx-Frameworkの MSDNサイト
より深く進む開発者のために、ソースコード
Rxに関するクールなオーストリアの基調講演
これは私が見た中で最高です:DevCamp 2010基調講演-Rx:非同期プログラミングブルースの治療
Channel 9の興味深い動画
キムハミルトンとウェスダイアー:BCLの.NET RxとIObservable / IObserverの内部(VS 2010)
Rx:Expert to Expert:Brian BeckmanとErik Meijer-.NET Reactive Framework(Rx)の作成者へのインタビュー
Rxの作成者からの紹介
Codeprojectの記事
以下は、リアクティブプログラミングで簡単にできることの例ですが、古典的なイベントでは(困難でない場合は)乱雑で、マウスボタンが押されている間に線を描画します。読み取り可能であり、明示的な状態処理はありません。
var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();
var mouseMoveWhileDown =
from md in this.GetMouseDown()
from mv in this.GetMouseMove().Until(this.GetMouseUp())
select new Point(mv.X, mv.Y);
mouseMoveWhileDown
.Pairwise()
.Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2));
(その例では、Pairwise()は自家製です...)
IObservableの最も重要なことは、IEnumerableと同じように「合成可能」であることです。
私は別の答えで言及されたビデオを完全に推薦します。実際、Channel9のテーマに関するいくつかの異なるビデオがあります。
TakeUntil
があります。
var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
。
HandsOnLab を含むいくつかの基本的なことを終えたら、Ryから不可解な謎のいくつかを取り除いたLee CampbellのHot and Cold Observablesをチェックしてください:)
リアクティブ LINQに関するこのシリーズの記事(4つあります)が役立つかもしれません 。リアクティブプログラミング(II。)-リアクティブLINQの紹介。
彼はそれを使ってゲームを書く例を持っているので、うまくいけばあなたが探しているものになるはずです。
また、Reactive Frameworkの紹介パート Iも見つけましたCodeBetter.com
。同じサイトの前編の続編があります。
これがお役に立てば幸いです。
奇妙なことに、Reactive Extensions ホームページは12のビデオやブログにリンクしていますが、包括的な公式リファレンスドキュメントへのリンクを忘れています。それは悲しいことです。もしあなたがチームを知っているなら、彼らに彼らのウェブサイトを修正するように頼んでください!
Rx Sandboxで遊んで、さまざまなコンビネーターの意味を非常に直感的に把握してください。これは私が見た中で最高の学習ツールです。
これらの記事を読み、特に、関連するソースコードをダウンロードして試してください。
これが信頼できると信じて
2番目の質問に答えるために、Rxから多くの利益を得ることができる問題を次に示します。それは「すぐに金持ちになる」と呼ばれています。
同じ名前のゲームを開発しましたが、かなり売れています。ただし、卸売りは店舗でのみ可能です。現金処理を簡単にするために、手前に流れるコンベヤーベルトがあります。
(上記のストーリーを自由に変更してください:))
営業担当者はそれに束縛された現金の札を置き、札の中の紙幣の量と種類を示すラベルはありません。あなたの仕事はお金を分類して数えることです。後で、より多くのお金を得るとき、あなたはあなたを助けるために他を雇うことができます。
この場合、ソースは札束の非同期ソースです(プロデューサー)。従業員とサプライヤはお金を期待していますが、札束を消費し、それらを開梱し、カスタムビジネスロジックを使用して、必要に応じて再パッケージして支払う必要があります。
営業担当者は独自のスレッドで実行しているので、あなたがベルトに何を投げるか数えるのを待つ必要はありません。あなたが他の仕事をすることができるまで、より多くのお金が数えることができるとき告げられるならば、あなたの時間は最もよく利用されます。
あなたは、バイトごとにそれぞれの札束を表すことができます[]。
これはかなり一般的な現実の状況です。ネットワーク上のリソース[検索エンジン、画像、動画などのウェブページ]や周辺機器からのデータを取得すると、バイトのチャンク(ヘッダー付きの場合もある)で取得されます。シングルスレッド、または操作が困難なマルチスレッド環境では、それらを集約して処理する傾向があります。もう違います!!
Jesse Libertyが本を2011年10月に発行しました。
Amazon.com:Reactive ExtensionsとLINQのプログラミング
そしてChannel9にRxWorkshopのビデオがあります:
「Microsoftのドキュメントを除外する」という条項は、チャンネル9の動画にも適用されますか
反応フレームワークの作成者からErik Meijer:-Expert to Expert:Brian Beckman and Erik Meijer-Inside the .NET Reactive Framework(Rx)
Andreas Hoffmannのリンクに加えて(Rxを学習していたときに非常に役立ちました)
Bart De Smetの一部を紹介します(物事を非常によく説明する非常に賢い人)ビデオ:
Rxの概要:
Rx-非同期プログラミングブルースの修復
いくつかの悲惨な内部+いくつかの哲学、これらのビデオは本当に啓発的です:
Min LINQ-LINQの本質
(上記のビデオは、LINQがRxのような他のものとどのように関連しているかを扱います)
DEVHOL202 – Reactive Extensions for .NETによる非同期ブルースの修正(PDF、2 MB)では、これまでに見た中で最高のラボ/チュートリアルです。ライブラリの基本について説明しているので、学んだことを基にして設計することができます。
JavaScriptバージョンもあります。Googleで「Reactive Extensionsハンズオンラボ」を検索します。