Microsoft のドキュメント以外に、Microsoft Reactive (Rx) フレームワークの適切な紹介とチュートリアルはありますか?
また、Reactive が従来の非同期コーディング技術を使用して解決するのが困難なプログラミングの問題をより簡単にする (コード付きの) 良い例は何ですか?
Microsoft のドキュメント以外に、Microsoft Reactive (Rx) フレームワークの適切な紹介とチュートリアルはありますか?
また、Reactive が従来の非同期コーディング技術を使用して解決するのが困難なプログラミングの問題をより簡単にする (コード付きの) 良い例は何ですか?
更新: 以下のブログ記事は、私のオンライン ブックwww.IntroToRx.comに取って代わられました。これは、無料で入手できる包括的な 19 章の本です。Web で閲覧するか、kindle の mobi バージョンをダウンロードできます。Amazonからわずかな料金(〜99c / 77p)で直接入手することもできます. この本があなたのニーズや期待に合わない場合は、私 (著者) に知らせてください。
ホット/コールド投稿へのリンクをありがとう。これは全シリーズのほんの一部であり、
このブログは、Rx の入門的な内容で更新し続けます。
より高度な情報については、Rx フォーラム(MSDN) にアクセスしてください。
これは、.NET Rxフレームワークのさまざまな機能の使用方法を示す多くのコード例を含むwikiサイトです:http://rxwiki.wikidot.com/101samples
私はこれが世の中で最も包括的なサイトであり、始めるのが最も速いサイトであることがわかりました。
Rx-FrameworkのMSDNサイト
深く掘り下げる開発者のために、ソースコード
Rxに関するクールなオーストリアの基調講演
これは私が見た中で最高です:DevCamp 2010基調講演-Rx:非同期プログラミングブルースの治療
チャンネル9のいくつかの興味深いビデオ
キムハミルトンとウェスダイアー:BCLの.NETRxとIObservable/ IObserverの内部(VS 2010)
Rxの作成者へのインタビュー:エキスパートからエキスパートへ:BrianBeckmanとErikMeijer-.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 には、このテーマに関するいくつかの異なるビデオがあります。
HandsOnLabを含むいくつかの基本的な ことを確認したら、Lee Campbell の Hot and Cold Observablesを確認してください。これは、私にとって Rx の難解なミステリーの一部を取り除いてくれました :)
奇妙なことに、Reactive Extensionsのホームページは12のビデオやブログにリンクしていますが、包括的な公式リファレンスドキュメントにリンクするのを忘れています。それは泣き叫ぶ恥です。チームを知っているなら、彼らに彼らのウェブサイトを修正するように頼んでください!
リアクティブLINQ に関する次の一連の記事 (4 つある) が役に立つかもしれません: リアクティブ プログラミング (II.) - リアクティブ LINQ の紹介。
彼はそれを使ってゲームを書いた例を持っているので、それがあなたが探しているものであることを願っています.
また、リアクティブ フレームワークの紹介パートI も見つけましたCodeBetter.com
。同サイトに前編の続編がある。
これがお役に立てば幸いです。
Rx Sandboxで遊んで、さまざまなコンビネータの意味を非常に直感的に把握してください。これは私が見た中で最高の学習ツールです。
これらの記事に目を通し、特に、関連するソースコードをダウンロードして試してみてください。
これが役立つと信じて
2 番目の質問に答えるために、Rx から多くの恩恵を受けることができる問題を次に示します。それは「一攫千金」と呼ばれるものです。
あなたは同名のゲームを開発し、かなり売れています。しかし、それはあなたの店でのみ販売されています。現金処理を簡単にするために、あなたに向かって流れるコンベヤーベルトがあります。
(上記の話を自由に変更してください:))
販売員は、紙幣の金額と種類を示すラベルを付けずに、バインドされた現金の束をその上に置きます。あなたの仕事は、お金を分類して数えることです。後で、より多くのお金を手に入れたら、他の人を雇ってあなたを助けることができます。
この場合、ソースは大量のキャッシュの非同期ソース (プロデューサー) です。従業員とサプライヤーはお金を期待していますが、あなたは束を消費し、開梱し、カスタム ビジネス ロジックを使用して必要に応じて再パッケージ化する必要があります。
営業担当者は自分のスレッドで実行しているため、ベルトに投げたものを数えるのを待つ必要はありません. 計算できるお金が増えたときに通知があれば、あなたの時間を最大限に活用できます。それまでは、他の仕事をすることができます。
各ワッドを byte[] で表すことができます。
これは、かなり一般的な現実の状況です。ネットワーク上のリソース (検索エンジンの Web ページ、画像、ビデオなど) や周辺機器からのデータを取得する場合、それらはバイトのチャンクで取得されます (ヘッダーを含む可能性があります)。シングル スレッド、または操作が難しすぎるマルチスレッド環境では、それらを集約して処理する傾向があります。もう違います!!
Jesse Liberty は、2011 年 10 月に出版された書籍を出版しています。
Amazon.com: Reactive Extensions と LINQ のプログラミング
また、Channel9 には RxWorkshop のビデオがあります。
DEVHOL202 – Reactive Extensions for .NET を使用して非同期の問題を解決する(PDF、2 MB) は、これまでに見た中で最高のラボ/チュートリアルです。ライブラリの基本について説明し、学んだことを基に構築および設計できるようにします。
JavaScript版もあります。Google で「Reactive Extensions Hands on Lab」を検索してください。
「Microsoft のドキュメントを除外する」条項は、Channel 9 のビデオにも適用されますか?
リアクティブ フレームワークの作成者 Erik Meijer から: -エキスパートからエキスパートへ: Brian Beckman と Erik Meijer - .NET リアクティブ フレームワーク (Rx) の内部
Andreas Hoffmann のリンクに加えて (私が Rx を学んでいたときにとても役に立ちました)
Bart De Smet (非常に頭がよく物事をうまく説明している) のビデオの一部を以下に示します。
Rx のちょっとした実行:
Rx - Curing your Asynchronous Programming Blues
Min LINQ
- The Essence of LINQ
(上記のビデオでは、LINQ が Rx などの他のものとどのように関係しているかを扱っています)
Introduction to Rx Part 1 - Key typesが気に入り、主要な機能が示されました。