222 votes

Bonne introduction au cadre réactif .NET

En dehors de la documentation Microsoft, existe-t-il une bonne introduction et un bon tutoriel sur le cadre Microsoft Reactive (Rx) ?

De plus, quel est un bon exemple (avec du code) qui montre que la réactivité facilite la résolution d'un problème de programmation difficile à résoudre avec les techniques de codage asynchrone classiques ?

0 votes

Je continue à chercher - j'ai besoin de voir beaucoup d'exemples avant d'avoir une bonne idée de ce à quoi il convient le mieux.

4 votes

J'ai construit une petite démo de recherche Bing en direct dans WPF avec Rx : blog.andrei.rinea.ro/2013/06/01/

5 votes

Je réponds exactement à cette question dans une série de billets sur mon blog : rehansaeed.co.uk/reactive-extensions-part1-replacing-events

102voto

Lee Campbell Points 3568

UPDATE : Les articles de blog ci-dessous ont été remplacés par mon livre en ligne www.IntroToRx.com . Il s'agit d'un livre complet de 19 chapitres disponible gratuitement. Vous pouvez le consulter sur le web, ou télécharger la version mobi pour votre kindle. Vous pouvez également l'obtenir directement sur Amazon pour une somme minime (~99c / 77p). Si le livre ne répond pas à vos besoins ou à vos attentes, faites-le savoir à moi (l'auteur) et nous ferons mieux pour la v2.

Merci pour le lien vers le poste "chaud/froid". Ce n'est qu'une partie de la série complète ,

  1. Introduction à Rx
  2. Méthodes statiques et d'extension
  3. Gestion de la durée de vie - Achèvement et désabonnement
  4. Contrôle du débit
  5. Combinaison de plusieurs flux IObservable
  6. Ordonnancement et threading
  7. Observables chauds et froids
  8. Test Rx
  9. Tampon, fenêtre, jointure et jointure de groupe

Je continuerai à mettre à jour ce blog avec d'autres informations sur l'introduction de Rx.

Pour les fonctions plus avancées, vous devez vous rendre à l'adresse suivante Forum Rx (MSDN).

7 votes

J'ai traîné les pieds pour apprendre le Rx parce que tout le matériel d'apprentissage est sous forme de vidéos. +Je vous remercie d'avoir fourni cette ressource textuelle.

0 votes

Enumerate this link is dead.

2 votes

Longue vie à Enumerate ce lien

85voto

LBushkin Points 60611

Voici un site wiki contenant de nombreux exemples de code démontrant comment utiliser les différentes fonctionnalités du cadre .NET Rx : http://rxwiki.wikidot.com/101samples

J'ai trouvé que c'était le site le plus complet et le plus rapide à utiliser pour commencer.

12 votes

Pour autant que je puisse le dire, ce wiki ne vous indique même pas quelle référence inclure. Ce qui est plutôt...frustrant.

0 votes

Humm, ajoutez simplement les dlls et ouvrez l'explorateur d'objets et recherchez la classe. Bien sûr, le menu contextuel du clic droit dans Visual Studio est également utile.

63voto

Summer Points 1024

5 votes

+Je recommande vivement ces vidéos, j'ai beaucoup appris. Consultez également certaines des vidéos de Bart De Smet sur IQueryable et IQbservable, vous comprendrez mieux les rouages de Rx.

1 votes

Le projet d'échantillons complet pour la vidéo "DevCamp 2010 keynote" est ici : bartdesmet.net/download/Rx40Samples.zip

16voto

Benjol Points 16334

Voici un exemple de quelque chose qui est facile à faire avec la programmation réactive, mais compliqué (si ce n'est difficile) avec les événements classiques, il dessine des lignes lorsque le bouton de la souris est enfoncé. C'est lisible, il n'y a pas de gestion d'état explicite :

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)); 

(Je dois avouer que dans cet exemple, Pairwise() est de fabrication maison...)

L'aspect le plus important de IObservable est qu'il est "composable", tout comme IEnumerable.

Je recommande vivement la vidéo mentionnée dans une autre réponse. En fait, il y a plusieurs vidéos différentes sur le sujet sur Channel9 :

0 votes

D'où vient le .Until, je ne peux jamais l'utiliser, je dois manquer une référence.

1 votes

@TimothyP, je pense que ça pourrait être un retour à une ancienne version. Ou bien j'en ai écrit une moi-même (je jouais avec l'implémentation de méthodes d'extension IObservable à l'époque). D'après ce que je peux voir, la dernière version des extensions réactives possède une méthode appelée TakeUntil ce qui semble bien correspondre.

0 votes

C'est un exemple impressionnant qui montre l'esprit de Rx. Merci.

12voto

sweetlilmre Points 488

Une fois que vous avez passé en revue les éléments de base, y compris les éléments suivants HandsOnLab assurez-vous de vérifier Les observables chauds et froids de Lee Campbell ce qui a enlevé une partie du mystère de la Rx pour moi :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X