Frage

ich die Grundlagen der Rx verstehen. Wo ich bin zu kämpfen, wie Sie tatsächlich diese über akademische Beispiele verwenden würde? Was sind einige gemeinsame, einfache realen Szenarien, in denen Rx eine viel bessere Lösung ist als das, was wir in .NET heute?

War es hilfreich?

Lösung

Für ein paar gute Beispiele finden Sie unter die 101 Rx Proben Wiki

Andere Tipps

Rx können Sie Code, orchestriert gleichzeitige Ereignisse zusammen schreiben. Wenn Sie jemals die TPL (d-Task) verwendet haben, dann gefaltet Flips zu tun hatte ContinueWith oder WaitAll auf die richtigen Dinge zu versuchen, ist Rx für Sie.

Zum Beispiel kann der Workflow von „Für jedes Element in diesem Array, rufen Sie einen Web-Service, und wenn all diese Anträge zurückkommen, etwas anderes tun. Wenn einer von ihnen scheitern, scheitert die ganze Sache“.

Disclosure, Shameless Stecker vor: Das Buch, das Jesse Liberty und ich schrieb über Rx wurde genau diese Frage zu lösen entworfen, „Wie verwende ich Rx in meinem Tag zu Tag Arbeit?“; "Was kann ich tun mit diesem?"

Zu allererst IObservable ist ein Ereignis, . So in überall Sie Ereignisse intern verwenden, können Sie IObservable verwenden -. Und wenn Sie später LINQ müssen gelten für diese Veranstaltung, Sie sind in der Lage, es zu tun, ohne Refactoring

Zweitens RX ist fit für jede Situation, wenn Sie benötigen, um Ihren Code auszuführen asynchronousely . Um zum Beispiel eines Web-Service-Aufruf oder ein großes Bild zu laden.

Aber wenn es beginnt zu leuchten wirklich - wenn Ihr Programm eine „kritische Masse“ von IObservable Nutzung erreicht und starten Sie die Kombination verschiedene Observablen Sie erstaunt sein würde, wie leicht einig Aufgaben werden.

  • Geräte measurments
  • Daten comming in über einen Message-Bus

In beiden Fällen nun der Standard-Weg, um die Daten über Ereignisse zu empfangen, aber wenn ich Abfragesyntax will, oder die Zusammensetzung, dann RX gibt es mir, wo Ereignisse nicht tun.

Rx ist sehr allgemein gehalten, so dass es unbegrenzten Nutzen hat, wie nur IEnumerable / IEnumerator unbegrenzten Nutzen hat. IE zieht Werte, schiebt IO-Werte.

Foreach ist ein konkretes Beispiel dafür, wo IEnumerables kommt in praktisch, aber das IEnumerable nicht erklären, oder ergeben oder irgendetwas. Das gleiche gilt für Rx.

In der Lage, etwas zu betrachten entweder aus einer Pull-Sicht oder eine Push Sicht und in der Lage, die Richtung oder Mittel zu steuern, ist sehr mächtig, denn jetzt können Sie Push- und Pull-Berechnungen um nach Belieben, mit LINQ Abfrageoperator für „frei“, gegen eine IO, weil es die mathematischen duale IE ist.

Ich hatte gerade meinen ersten Blick auf Rx, aber ein Spaß-Projekt ich es verwenden würde für ein Silverlight Erstellen Widget, das zeigt Aktivität in unserem ASP.NET MVC Web-App (die Aktionsmethoden genannt wurden, durch die Benutzer , etc). Es scheint, dass Rx mit einer Menge Dinge in diesem Projekt helfen kann, wie Concurrency Management und Throttling.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top