Reactive extensions - secondnug

2,776 views

Published on

La presentación sobre reacti

Published in: Sports, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,776
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Reactive extensions - secondnug

  1. 1. Bienvenido al mundo reactivo con:Reactive Extensions (Rx) Por Fernando Escolar
  2. 2. reactive extensions contexto uievent-based the cloud client application asynchronous communication @SecondNug @fernandoescolar
  3. 3. reactive extensions reactive programming• Basada en flujos de datos y propagación de cambios. Tradicional Reactiva @SecondNug @fernandoescolar
  4. 4. reactive extensions definición• Microsoft Live Labs - Erik Meijer “Rx es una librería para componer programas asíncronos y basados en eventos usando colecciones observables”• Dualidad matemática entre el patrón iterator y el observer. @SecondNug @fernandoescolar
  5. 5. reactive extensions definición• Microsoft Live Labs - Erik Meijer “Rx es una librería para componer programas asíncronos y basados en eventos usando colecciones observables” Rx = Observables + Linq + Schedulers• Dualidad matemática entre el patrón iterator y el observer. @SecondNug @fernandoescolar
  6. 6. reactive extensionsinstalación Nuget Web @SecondNug @fernandoescolar
  7. 7. reactive extensionspatrón iterator @SecondNug @fernandoescolar
  8. 8. reactive extensionspatrón observer @SecondNug @fernandoescolar
  9. 9. reactive extensionsformula Rx = Observables + Linq + Schedulers @SecondNug @fernandoescolar
  10. 10. reactive extensions sujetos ISubject<T>: IObservable<T>,IObserver<T>Tipos: • Subject<T> • ReplaySubject<T> • BehaviorSubject<T> • AsyncSubject<T> @SecondNug @fernandoescolar
  11. 11. reactive extensions Rx vs. eventsSujetos: Eventos:Declaración Declaración ISubject<string> Changed = event Action<string> Notified; new Subject<string>();Suscripción Suscripción var disposable = Action<string> OnNotified = Changed.Subscribe( s => Console.WriteLine(s); s => Console.WriteLine(s)); Notified += OnNotified;Publicación Publicación Changed.OnNext ("hello"); Notified("hello");Desuscripción Desuscripción disposable.Dispose(); Notified -= OnNotified; @SecondNug @fernandoescolar
  12. 12. reactive extensions observable: creadores• Create • Never• CreateWithDisposable • Range• Defer • Repeat• Empty • Return• FromAsyncPattern • Start• FromEvent • StartWith• Generate • Throw• GenerateInSequence • Timer• Interval • Using @SecondNug @fernandoescolar
  13. 13. reactive extensionsformula Rx = Observables + Linq + Schedulers @SecondNug @fernandoescolar
  14. 14. reactive extensions scheduler• Dispatcher: Programa en el dispatcher actual.• NewThread: Lo programa en un nuevo hilo.• ThreadPool: Lo encola en la threadPool.• TaskPool: En la Pool de task (Parallel)• Inmediate: Lo ejecuta inmediatamente, sin programar.• CurrentThread: La programa para ejecutarse en el hilo actual. @SecondNug @fernandoescolar
  15. 15. reactive extensionsformula Rx = Observables + Linq + Schedulers @SecondNug @fernandoescolar
  16. 16. reactive extensions observable: operadores i.• Amb • Merge • SubscribeOn• Asynchronous • ObserveOn • SubscribeOnDispatcher• Buffer • ObserveOnDispatcher • Switch• BufferWithTime • OnErrorResumeNext • Synchronize• Catch • Remotable • Take• CombineLatest • RemoveTimeInterval• Concat • RemoveTimestamp • TakeWhile• Delay • Repeat • Throttle• Dematerialize • Retry • TimeInterval• Do • Sample • Timeout• Finally • Scan • Timestamp• GroupBy • Select • Until• Hide • SelectMany • WaitUntil• HoldUntilChanged • Skip • Where• Let • SkipWhile • Yield• Materialize • SkipUntil • Zip @SecondNug @fernandoescolar
  17. 17. reactive extensionsobservable: operadores ii.• Evaluadores: • Uniones:  Agregarte  Join  And  Then  Contains  Count  First • Otras:  FirstOrDefault  Prune  GetEnumerator  Publish  Last  Record  LastOrDefault  Latest  Replay  LatestValue  LongCount  MostRecent  MostRecentValue  Next  NextValue  Single  SingleOrDefault  ToEnumerable @SecondNug @fernandoescolar
  18. 18. reactive extensions Rx vs. eventsSujetos: Eventos:Declaración Declaración ISubject<string> Changed = event Action<string> Notified; new Subject<string>();Suscripción Suscripción var disposable = Action<string> OnNotified = Changed.Subscribe( s => Console.WriteLine(s); s => Console.WriteLine(s)); Notified += OnNotified;Publicación Publicación Changed.OnNext ("hello"); Notified("hello");Desuscripción Desuscripción disposable.Dispose(); Notified -= OnNotified; @SecondNug @fernandoescolar
  19. 19. reactive extensions Linq2EventsConvertir un cualquier evento en observable: @SecondNug @fernandoescolar
  20. 20. reactive extensions EjemplosEjemplos útiles en diversas aplicaciones:- WPF Drag ‘n Drop- Reactive EventAggregator- Twitter @SecondNug @fernandoescolar
  21. 21. reactive extensionsruegos y preguntas @SecondNug @fernandoescolar
  22. 22. reactive extensions despedida ¡Muchas gracias a todos!• Agradecimientos:  SecondNug y concretamente a Alfredo Fernández  Pablo Bouzada  Javier Jimenez (rx: first contact)• Enlaces de interés  http://en.wikipedia.org/wiki/Reactive_programming  http://en.wikipedia.org/wiki/Observer_pattern  http://en.wikipedia.org/wiki/Iterator_pattern  http://www.dofactory.com/Patterns/PatternIterator.aspx  http://www.minddriven.de/index.php/technology/dot-net/reactive-framework-rx-first-look  http://www.silverlightshow.net/items/Using-Reactive-Extensions-in-Silverlight.aspx  http://leecampbell.blogspot.com/2010/08/reactive-extensions-for-net.html  http://rxwiki.wikidot.com/101samples @SecondNug @fernandoescolar

×