Gibt es neben der Microsoft-Dokumentation eine gute Einführung und ein Tutorial zum Microsoft Reactive (Rx) -Framework?
Was ist ein gutes Beispiel (mit Code), das Reactive für ein Programmierproblem erleichtert, dessen Lösung mit herkömmlichen asynchronen Codierungstechniken schwierig ist?
c#
.net
asynchronous
system.reactive
LBushkin
quelle
quelle
Antworten:
UPDATE : Die folgenden Blog-Beiträge wurden von meinem Online-Buch www.IntroToRx.com ersetzt . Es ist ein umfassendes Buch mit 19 Kapiteln, das kostenlos erhältlich ist. Sie können es im Internet durchsuchen oder die Mobi-Version für Ihr Kindle herunterladen. Gegen eine geringe Gebühr (~ 99c / 77p) erhalten Sie es auch direkt bei Amazon. Wenn das Buch nicht Ihren Bedürfnissen oder Erwartungen entspricht, lassen Sie es mich (den Autor) wissen und wir werden es für v2 besser machen.
Danke für den Link zum Hot / Cold Post. Dies ist nur ein Teil der gesamten Serie ,
Ich werde diesen Blog weiterhin mit weiteren Rx-Einführungsmaterialien aktualisieren.
Für fortgeschrittenere Sachen gehen Sie zum Rx Forum (MSDN).
quelle
Hier ist eine Wiki-Site mit vielen Codebeispielen, die zeigen, wie verschiedene Funktionen des .NET Rx-Frameworks verwendet werden: http://rxwiki.wikidot.com/101samples
Ich fand, dass dies die umfassendste Website ist, mit der man am schnellsten anfangen kann.
quelle
MSDN Site für Rx-Framework
Für einen Entwickler, der tiefer geht, der Quellcode
Coole österreichische Keynote über Rx
Dies ist das Beste, was ich je gesehen habe: DevCamp 2010 Keynote - Rx: Heilen Sie Ihren asynchronen Programmier-Blues
Einige interessante Videos auf Kanal 9
Kim Hamilton und Wes Dyer: In .NET Rx und IObservable / IObserver in der BCL (VS 2010)
Ein Interview mit dem Schöpfer von Rx: Experte zu Experte: Brian Beckman und Erik Meijer - Innerhalb des .NET Reactive Framework (Rx)
Eine Einführung vom Schöpfer von Rx
Ein Codeprojekt- Artikel
Ein weiterer Kurs erster Blog mit Links (neu)
quelle
Hier ist ein Beispiel für etwas, das mit reaktiver Programmierung einfach zu tun ist, aber bei klassischen Ereignissen chaotisch (wenn nicht herausfordernd) ist. Es zeichnet Linien, während die Maustaste gedrückt ist. Es ist lesbar, es gibt keine explizite Statusbehandlung:
(Ich muss gestehen, dass Pairwise () in diesem Beispiel aus eigenem Anbau stammt ...)
Das Wichtigste an IObservable ist, dass es genau wie IEnumerable "zusammensetzbar" ist.
Ich kann das in einer anderen Antwort erwähnte Video nur empfehlen. Tatsächlich gibt es auf Channel9 verschiedene Videos zu diesem Thema:
quelle
TakeUntil
, die gut passt.var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
.Wenn Sie einige grundlegende Dinge wie das HandsOnLab durchgearbeitet haben , sollten Sie sich Lee Campbells Hot and Cold Observables ansehen , die Rx einige der arkanen Geheimnisse für mich genommen haben :)
quelle
Diese Artikelserie (es gibt vier) über reaktiven LINQ kann nützlich sein: Reaktive Programmierung (II.) - Einführung in reaktiven LINQ .
Er hat ein Beispiel dafür, wie man ein Spiel damit schreibt, also sollte es hoffentlich das sein, wonach Sie suchen.
quelle
Ich fand auch Einführung in das reaktive Framework Teil I auf
CodeBetter.com
. Es gibt eine Fortsetzung des ersten Teils auf derselben Site.Ich hoffe, dies wird dir helfen.
quelle
Seltsamerweise verweist die Homepage von Reactive Extensions auf ein Dutzend Videos und Blogs, vergisst jedoch, auf die umfassende offizielle Referenzdokumentation zu verlinken. Das ist eine Schande, wenn Sie das Team kennen, bitten Sie sie, ihre Website zu reparieren!
quelle
Spielen Sie mit Rx Sandbox , um eine sehr intuitive Ansicht der verschiedenen Kombinatoren zu erhalten. Dies ist das beste Lernwerkzeug, das ich je gesehen habe.
quelle
Gehen Sie diese Artikel durch und laden Sie insbesondere den zugehörigen Quellcode herunter und spielen Sie damit.
Vertraue darauf, dass dies helfen wird
quelle
Um die zweite Frage zu beantworten, hier ist ein Problem, das von Rx sehr profitieren kann. Es heißt "schnell reich werden".
Sie haben ein gleichnamiges Spiel entwickelt, das sich ziemlich gut verkauft. Es ist jedoch nur in Ihren Filialen für den Großhandel erhältlich. Um die Bargeldverarbeitung zu vereinfachen, haben Sie ein Förderband, das zu Ihnen fließt.
(Bitte zögern Sie nicht, die obige Geschichte zu ändern :))
Verkäufer legen gebundene Geldbündel darauf, ohne dass Etiketten den Betrag und die Art der Rechnungen im Bündel angeben. Ihre Aufgabe ist es, das Geld zu sortieren und zu zählen. Wenn Sie später mehr Geld bekommen, können Sie andere einstellen, die Ihnen helfen.
In diesem Fall ist die Quelle eine asynchrone Quelle für Geldbündel (Produzent). Ihre Mitarbeiter und Lieferanten erwarten Geld, aber Sie müssen die Wads verbrauchen, auspacken und Ihre benutzerdefinierte Geschäftslogik verwenden, um sie entsprechend neu zu verpacken und zu bezahlen.
Die Verkäufer laufen auf ihrem eigenen Faden, damit sie nicht darauf warten müssen, dass Sie zählen, was sie auf den Gürtel werfen. Ihre Zeit wird am besten genutzt, wenn Sie erfahren, wann mehr Geld zum Zählen verfügbar ist. Bis dahin können Sie andere Arbeiten ausführen.
Sie können jedes Wad durch ein Byte [] darstellen.
Dies ist eine ziemlich häufige Situation in der realen Welt. Wenn Sie eine Ressource (z. B. Webseiten für Suchmaschinen, Bilder oder Videos) in einem Netzwerk oder Daten von Peripheriegeräten abrufen, erhalten Sie diese in Byte-Blöcken (möglicherweise mit Headern). In einem einzelnen Thread oder in einer Umgebung mit mehreren Threads, mit der es zu schwierig ist, zu arbeiten, neigen Sie dazu, sie zu aggregieren und zu verarbeiten. Nicht länger!!
quelle
Jesse Liberty hat ein Buch herausgebracht, das im Oktober 2011 veröffentlicht wurde:
Amazon.com: Programmieren von reaktiven Erweiterungen und LINQ
Und es gibt die RxWorkshop-Videos auf Channel9:
Channel9: RxWorkshop
quelle
Erstreckt sich Ihre Klausel "Microsoft-Dokumentation ausschließen" auf die Videos auf Kanal 9?
Vom Schöpfer des reaktiven Frameworks Erik Meijer: - Experte zu Experte: Brian Beckman und Erik Meijer - Innerhalb des .NET Reactive Framework (Rx)
Brandneu : Erste Schritte mit Rx Extensions für .NET
quelle
Zusätzlich zu Andreas Hoffmanns Links (fand sie sehr hilfreich, als ich Rx lernte)
Hier sind einige von Bart De Smet (ein SEHR kluger Typ, der die Dinge wirklich gut erklärt) Videos:
Ein bisschen ein Durchlauf von Rx:
Rx - Curing your Asynchronous Programming Blues
Einige blutige Innenseiten + einige Philosophie, diese Videos sind wirklich aufschlussreich:
Min LINQ - Die Essenz von LINQ
(Das obige Video befasst sich damit, wie LINQ irgendwie mit anderen Dingen zusammenhängt, wie Rx)
Beobachtungen zu IQbservable - Das Dual von IQueryable
quelle
DEVHOL202 - Das Heilen des asynchronen Blues mit den Reactive Extensions für .NET (PDF, 2 MB) ist das beste Labor / Tutorial, das ich bisher gesehen habe. Es führt Sie durch die Grundlagen der Bibliothek, sodass Sie auf dem Gelernten aufbauen und gestalten können.
Es gibt auch eine JavaScript-Version. Durchsuchen Sie Google nach "Reactive Extensions Hands on Lab".
quelle
Ich mochte die Einführung in Rx Teil 1 - Schlüsseltypen und es wurden die wichtigsten Funktionen gezeigt.
quelle