C'è stato un bel po 'di hype attorno al nuovo Reactive Framework in .NET 4.0. Mentre penso di aver capito il suo concetto di base, non sono completamente venduto che sia così utile. Puoi venire con un buon esempio (che è a metà strada facile da capire) che mostra totalmente la potenza e l'utilità di Rx? Mostra qualcosa che rende la vita molto più semplice quando viene eseguita con Rx.Framework reattivo per esempi .NET che dimostrano la sua utilità
risposta
Ecco un breve esempio. Programmare un'operazione di trascinamento in modo completamente dichiarativo, utilizzando LINQ per gli eventi.
//Create an observable with the initial position and dragged points using LINQ to Events
var mouseDragPoints = from md in e.GetMouseDown()
let startpos=md.EventArgs.GetPosition(e)
from mm in e.GetMouseMove().Until(e.GetMouseUp())
select new
{
StartPos = startpos,
CurrentPos = mm.EventArgs.GetPosition(e),
};
e tracciare una linea da startpos a pos attuali
//Subscribe and draw a line from start position to current position
mouseDragPoints.Subscribe
(item =>
{
//Draw a line from item.Startpos to item.CurrentPos
}
);
Come si può vedere, non ci sono gestori di eventi in tutto i luoghi, né le variabili booleane per la gestione dello stato.
Se siete curiosi di conoscere quei metodi GetEventName(), suggerendo di leggere l'intero articolo e scaricare il codice sorgente e giocarci.
Risposta molto dettagliata ma non così facile da capire. Dovrò fare un po 'di lettura ... – bitbonk
La domanda era solo per fare un esempio. Ecco una buona lettura se vuoi toccare le basi - http://amazedsaint.blogspot.com/2009/11/systemreactive-or-net-reactive.html – amazedsaint
ho scritto una demo step-by-step sul mio blog di recente: http://blog.andrei.rinea.ro/2013/06/01/bing-it-on-reactive-extensions-story-code-and-slides/
praticamente sto costruendo una piccola applicazione in WPF con Rx e Bing Cerca:
L'applicazione attenderà fino a quando non si interrompe la digitazione e quindi si esegue una ricerca asincrona e si presentano i risultati. Se prima che i risultati arrivassero emetterai un'altra ricerca, la ricerca esistente verrà automaticamente interrotta.
È possibile forzare una ricerca (per saltare il tempo di attesa) premendo ENTER o "Vai!" pulsante e può interrompere una ricerca in corso premendo il pulsante Cancella. C'è un indicatore di occupato e un po 'di gestione degli errori (nel caso in cui la rete si interrompa, per esempio).
Temi principali trattati:
- Creazione di un osservabile da un evento (TextChanged, Button.Click ecc)
- Asincrono delegato (ricerca asincrona)
- estensione TakeUntil
- estensione DistinctUntilChanged (tra cui personalizzato Uguale)
- Estensione di unione
- Estremità dell'acceleratore
- Estensione ObserveOn (per sincronizzazione thread UI)
.. e altro ancora!
- 1. Che cos'è .NET Framework?
- 2. Framework NLP per .NET
- 3. Best Practice per la classe di utilità?
- 4. Miglior framework/utilità client REST su Android
- 5. ROS Framework Installazione ed esempi
- 6. SQLCLR che utilizza la versione errata di .NET Framework
- 7. Framework per .net Reflection.Emit semplificazione?
- 8. SOAP client in .NET - riferimenti o esempi?
- 9. Che cos'è XOauth e la sua relazione con OAuth?
- 10. Framework di caching per .NET
- 11. Progetti open source che dimostrano i principi TDD e SOLID
- 12. In che modo .NET framework alloca memoria per OutOfMemoryException?
- 13. Qualsiasi framework NIO per .NET?
- 14. Che cos'è un "framework .NET privato"?
- 15. Script Python che stampa la sua fonte
- 16. .net framework compatto "Target framework"
- 17. Le leggi del funtore dimostrano la completa conservazione della struttura?
- 18. .net Utilità InstallUtil - 32 bit vs 64 bit
- 19. Che cos'è l'algoritmo per finestre scorrevoli? Esempi?
- 20. Esempi di app veloci .NET WPF/WinForms?
- 21. Iniezione delle dipendenze in .NET con esempi?
- 22. Framework di segnalazione degli errori per .net
- 23. Profilo di memoria per .NET Compact Framework
- 24. Libreria EXIF per .NET 4.0 framework
- 25. Supporto .NET Framework per hardware multicore
- 26. framework per la funzionalità di chat che supporta tutte le piattaforme mobili e l'applicazione web .net
- 27. Libreria GPS per .NET framework compatto
- 28. .NET Rest Client Framework
- 29. WebApi HttpClient per .NET framework 3.5
- 30. Entity Framework 5.0 - è richiesta la versione minima .Net Framework? .Net 4.0 o 4.5?
Vedere un esempio qui: http://stackoverflow.com/questions/1596158/good-introduction-to-the-net-reactive-framework/1749252#1749252 – Benjol
Quando si spinge utile? Quando sta tirando utile? –