Buona introduzione all’ .NET Reattiva Quadro

A parte la documentazione di Microsoft, c’è una buona introduzione e tutorial per Microsoft Reattiva (Rx) quadro?

Anche, che cosa è un buon esempio (con il codice) che Reattiva rende più semplice di un problema di programmazione che è difficile da risolvere utilizzando i tradizionali asincrona tecniche di codifica?

InformationsquelleAutor LBushkin | 2009-10-20



16 Replies
  1. 97

    AGGIORNAMENTO: Il blog post qui sotto, sono state sostituite dal mio libro online http://www.IntroToRx.com. Si tratta di una completa 19 capitolo libro disponibile gratuitamente. È possibile navigare sul web, o scaricare la versione mobi per kindle. È inoltre possibile ottenere direttamente da Amazon per una tassa molto piccola (~99c /77p). Se il libro non soddisfa le vostre esigenze o aspettative, mi permette (Autore), sapere e faremo il meglio per la v2.

    Grazie per il link per il Caldo/Freddo post. Questa è solo una parte della serie completa,

    1. Introduzione alla Rx
    2. Statico e metodi di estensione
    3. Gestione di durata – la Compilazione e Sottoscrizione
    4. Controllo di flusso
    5. Combinazione di più IObservable flussi
    6. La pianificazione e la filettatura
    7. Calda e Fredda osservabili
    8. Test Rx
    9. Buffer, Finestra, Unirsi e di Gruppo, di Partecipare

    Sarà mantenere l’aggiornamento di questo blog con più Rx introduttivo roba.

    Per cose più avanzate, si vuole andare al Rx Forum (informazioni in lingua inglese).

    • Sto trascinando i miei piedi di apprendimento su Rx, perché tutti i materiali didattici sono in forma di video. +1 per la fornitura di questo testo-base di risorse.
    • Enumerare questo link è morto.
    • Lunga vita a Enumerare questo link
    • Io lavoro con James (EnumerateThis) e lui non ha toccato negli anni. Sembra non avere il tempo o l’appetito per rivivere
  2. 84

    Ecco un sito wiki con un sacco di esempi di codice che illustrano come utilizzare diverse caratteristiche .NET Rx quadro: http://rxwiki.wikidot.com/101samples

    Ho trovato questo per essere il più completo sito là fuori, e quello che è più veloce per iniziare con.

    • Per quanto posso dire a questo wiki non così tanto come dire che il riferimento a includere. Che è piuttosto…frustrante.
    • umm basta aggiungere la dll e aprire esplora oggetti e di ricerca per la classe. naturalmente il tasto destro del mouse menu contestuale in Visual studio aiuta troppo
  3. 61

    Sito MSDN per Rx-Quadro

    Per uno Sviluppatore di andare più in profondità, il Il Codice Sorgente

    Fresco Austriaco keynote su Rx

    Questo è il migliore che ho visto: DevCamp 2010 Keynote – Rx: Curare la programmazione asincrona blues

    Alcuni interessanti Video sul Canale 9

    Kim Hamilton e Wes Dyer: al suo Interno .NET Rx e IObservable/IObserver nel BCL (VS 2010)

    Un’intervista con il creatore da Rx: Esperto Esperto: Brian Beckman e Erik Meijer – all’Interno del .NET Reattiva Quadro (Rx)

    Un’introduzione da parte del creatore di Rx

    Un Codeproject Articolo

    Un altro corso primo blog con link (nuovo)

    • +1 raccomando questi video, ho imparato MOLTO, anche check out alcuni di Bart De Smet ‘s video su IQueryable e IQbservable, Si ottiene una migliore comprensione degli interni di Rx.
    • I campioni completi progetto per la “DevCamp 2010 lectio magistralis” il video è qui: bartdesmet.net/download/Rx40Samples.zip
  4. 16

    Ecco un esempio di qualcosa che è facile da fare con il reattivo di programmazione, ma disordinato (se non impegnativo) con la classica eventi, disegna linee, mentre il pulsante del mouse è premuto. È leggibile, non vi è alcun esplicito di stato per la movimentazione:

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

    (Devo confessare che in questo esempio, Coppie() è cresciuto…)

    La cosa più importante IObservable è che è ‘componibile’, proprio come IEnumerable.

    Ho thouroughly consigliare il video già detto in un’altra risposta. In realtà ci sono diversi video sull’argomento su Channel9:

    • Da dove viene .Fino a venire, posso non lo uso mai, mi manca un riferimento
    • Penso che potrebbe essere un ritorno ad una versione precedente. Che o ho scritto uno io (stavo giocando con l’implementazione di IObservable metodi di estensione al momento). Da quello che posso vedere, l’ultima versione del reattiva estensioni ha un metodo chiamato TakeUntil, che si presenta come una buona misura.
    • Questo è un fantastico esempio che mostra lo spirito di Rx. Grazie.
    • Si può condividere l’implementazione di Coppie()?
    • Ooh, @blaster, che è una domanda difficile. Vado a vedere se riesco a trovarlo, e, in mancanza, vado a vedere se il mio arrugginito cervello è in grado di ricreare!
    • Ho anche io qualcosa, perché non si posta un’altra domanda e a me il ping con il link?
    • che ne dite di questa implementazione: var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y)).

  5. 4

    Stranamente, Reattiva Estensioni home page link a una decina di video e blog, ma dimentica di collegamento per il completo ufficiale di riferimento documentazione. Questo è un vero peccato, se si conosce la squadra, si prega di chiedere loro di risolvere il loro sito web!

  6. 2

    Per rispondere alla seconda domanda, qui è un problema che può beneficiare molto dalla Rx. Si chiama “Get rich quick”.

    Avete sviluppato un gioco con lo stesso nome e si vende abbastanza bene. Ma è disponibile solo nei negozi per la vendita all’ingrosso. Per rendere il trattamento del denaro facile, si dispone di un nastro trasportatore che scorre verso di voi.

    (Per favore, sentitevi liberi di cambiare la storia di cui sopra 🙂 )

    Gente di vendite luogo legato mazzette di denaro su di esso senza etichette che indicano la quantità e il tipo di bollette, nel wad. Il vostro compito è quello di ordinare e contare il denaro. Più tardi, quando si ottiene più soldi, è possibile noleggiare gli altri per aiutarvi.

    In questo caso, la fonte è un asincrono fonte di mazzette di denaro contante (Produttore).
    I vostri dipendenti e fornitori si aspettano i soldi, ma si deve consumare le mazzette, spacchettarli e usare la vostra logica di business personalizzata per rigenerare come appropriato per pagare loro.

    Il personale di vendita in esecuzione sul loro proprio thread, in modo che essi non devono aspettare per voi a conte che si buttano sulla cintura. Il tuo tempo è meglio utilizzato se si è detto più denaro è a disposizione di conte, fino ad allora si può fare un altro lavoro.

    È possibile rappresentare ogni wad da un byte[].

    Questa è una cosa piuttosto comune situazione del mondo reale; quando il recupero di tutte le risorse [per esempio, le pagine web per i motori di ricerca, immagini o video] su una rete o di dati da periferiche, li ottiene in blocchi di byte (possibilmente con le intestazioni). In un unico thread, o in un multi-thread ambiente che è troppo difficile da lavorare, si tende ad aggregare e la loro elaborazione. Non più!!

    • questo è solo alcuni produttori (sales people), la chiamata di OnNext sullo stesso IObserver<T> e quindi il consumo di sottoscrizione, ma per garantire che l’Osservazione su un altro thread in cui viene prodotto(OnNext).
  7. 1

    Oltre ad Andreas Hoffmann link (li ho trovati molto utili quando stavo imparando Rx)

    Qui sono alcuni di Bart De Smet (un ragazzo MOLTO intelligente che spiega le cose molto bene) Video:

    Un pò di Rx:

    Rx – Curare la Programmazione Asincrona Blues

    Alcuni sanguinosi interni + un po ‘ di filosofia, questi video sono davvero illuminante:

    Min LINQ – L’essenza di LINQ

    (Il video qui sopra spiega come LINQ genere si riferisce ad altre cose, Come Rx)

    Osservazioni sul IQbservable – Il Doppio di IQueryable

Lascia un commento