Frage Gutes Beispiel für reaktive Erweiterungen Verwendung [geschlossen]


Ich verstehe die Grundlagen von Rx. Wo ich kämpfe ist, wie würdest du das tatsächlich jenseits von akademischen Beispielen nutzen? Was sind einige übliche, einfache reale Szenarien, in denen Rx eine viel bessere Lösung ist als das, was wir heute in .NET haben?


75
2018-03-31 05:47


Ursprung


Antworten:


Für ein paar gute Beispiele, siehe das 101 Rx Samples Wiki


38
2018-03-31 06:04



Mit Rx können Sie Code schreiben, der gleichzeitige Ereignisse zusammenführt. Wenn Sie jemals die TPL (d. H. Task) verwendet haben, dann mussten Sie Confluted Backflips tun, um ContinueWith oder WaitAll auf die richtigen Dinge zu versuchen, Rx ist für Sie.

Zum Beispiel den Workflow von "Für jedes Element in diesem Array, rufen Sie einen Web-Service, und wenn alle diese Anfragen zurückkommen, etwas anderes tun. Wenn einer von ihnen fehlschlägt, scheitern die ganze Sache".

Offenlegung, schamloser Stecker voraus: Das Buch, das Jesse Liberty und ich über Rx geschrieben haben wurde entwickelt, um genau diese Frage zu lösen, "Wie benutze ich Rx in meiner täglichen Arbeit?"; "Was kann ich machen mit diesem?"


26
2017-11-07 02:18



Zunächst einmal IObservable ist ein Ereignis. Wenn Sie also Ereignisse intern verwenden, können Sie IObservable verwenden. Wenn Sie später LINQ auf dieses Ereignis anwenden müssen, können Sie dies ohne Refactoring tun.

Zweitens ist RX für jede Situation geeignet, in der Sie Ihren Code ausführen müssen asynchron. Beispielsweise den Aufruf eines Web-Service oder das Laden eines großen Bildes.

Aber wenn es wirklich anfängt zu scheinen - wenn Ihr Programm eine "kritische Masse" von IObservable-Nutzung erreicht und Sie beginnen kombinieren verschiedene Observable würden Sie erstaunt sein wie einfach einige Aufgaben werden.


25
2018-04-25 02:03



  • Gerätemessungen
  • Daten, die über einen Nachrichtenbus eingehen

In beiden Fällen ist der standardmäßige Weg, die Daten zu empfangen, über Ereignisse, aber wenn ich die Abfragesyntax oder die Zusammensetzung haben möchte, dann gibt RX es mir, wo Ereignisse nicht sind.


4
2018-04-19 18:44



Rx ist sehr allgemein, so dass es unbegrenztes Dienstprogramm hat, genauso wie IEnumerable / IEnumerator unbegrenztes Dienstprogramm hat. IE zieht Werte, IO drückt Werte.

Foreach ist ein konkretes Beispiel dafür, wo IEnumerables nützlich sind, aber das erklärt IEnumerable oder yield nicht. Das Gleiche gilt für Rx.

In der Lage zu sein, entweder von einem Zugpunkt oder einem Push-Point-View aus etwas zu sehen und die Richtung oder Mittel zu steuern, ist sehr mächtig, da Sie nun Berechnungen mithilfe der LINQ-Abfrage nach Belieben ausführen können Operatoren für "frei", gegen ein IO, weil es das mathematische Dual von IE ist.


2
2018-05-02 06:10



Ich habe gerade meinen ersten Blick auf Rx geworfen, aber ein lustiges Projekt, für das ich es verwenden werde, ist das Erstellen eines Silverlight-Widgets, das Aktivitäten in unserer ASP.NET MVC-Webanwendung anzeigt (welche Aktionsmethoden wurden von welchem ​​Benutzer aufgerufen usw.) . Es scheint, dass Rx mit vielen Dingen in diesem Projekt, wie Concurrency Management und Throttling, helfen kann.


0
2018-06-07 22:43