The Reactive Extensions libraries from Microsoft are the implementations of these interfaces that are quickly picking up traction with Server, Client and Web developers alike. Rx is a powerfully productive development tool. Rx enables developers to solve problems in an elegant, familiar and declarative style; often crucially with less code than was possible without Rx
6. .Net Conf Mx 2018
• Language Integrated Query
• Permite consultar fuentes de datos diversas de una forma
consistente y agnóstica a la fuente subyacente de datos
• Dos formas de escribirlo, por comprensión y por métodos de
extension
• Providers
C# y LINQ
7. .Net Conf Mx 2018
• Expresiones lambda
• Métodos de extensión
• Inicializadores de objetos (y listas)
• Tipos anónimos
Características que habilitan a LINQ
8. .Net Conf Mx 2018
• Delegados, tipos que contienen la definición de un método
• Métodos anónimos, delegados de una sola línea, sin nombre.
• Las expresiones lambda son una abreviatura para los
delegados anónimos.
Expresiones lambda
10. .Net Conf Mx 2018
• Syntactic Sugar para crear
métodos estáticos sobre tipos
estáticos e invocarlos como
métodos de instancia.
• Facilita la escritura, comprensión y
posterior mantenimiento del
código.
Métodos de extensión
12. .Net Conf Mx 2018
• Simplifican crear una instancia de cualquier clase
Inicializadores de objetos y listas
13. .Net Conf Mx 2018
• Tipos creados al vuelo por el compilador.
• Propiedades de solo lectura
• Útiles cuando solo se requieren pasar resultados entre clases,
evitamos escribir una clase que solo se utilizará una vez
Tipos anónimos
14. .Net Conf Mx 2018
• Sintaxis de comprensión
• Sintaxis de métodos de
extensión
Sintaxis para escribir
LINQ
15. .Net Conf Mx 2018
• Un provider es un una pieza de software que implementa
IQueryProvider e IQueryable para una tecnología de
almacenamiento subyacente.
• LINQ to SQL
• LINQ to XML
• LINQ to Objects(IEnumerable)
LINQ Providers
17. .Net Conf Mx 2018
• Reactive Extensions have been described as a library for
composing asynchronous and event-based
programs using observable collections*
• No confundir con ObservableCollection<T>
Intro to Rx
18. .Net Conf Mx 2018
• Creadas por Microsoft
• Parte de System
• Gran integración con LINQ
• LINQ to Events
• Liberadas en 2009
• Portadas a
• Java
• C++
• Javascript
• Python
Reactive Extensions
19. .Net Conf Mx 2018
• Integrado -> LINQ es parte de C#
• Intuitivo -> aprovecha lo que ya sabes Where, Select, Skip,
• Se puede extender -> Métodos de extensión
• Declarativo -> que quiero, no como lo quiero
• Se puede componer -> combinando secuencias
¿En que me beneficia?
21. .Net Conf Mx 2018
• Notifica a sus observadores
• Push Model
• Podría o no tener un final
• Los valores se pueden procesar con LINQ
• Las suscripciones se terminan vía IDisposable
IObservable<T>
25. .Net Conf Mx 2018
• Construido sobre las Reactive Extensions
• Soporte para todas las plataforms graficas de .NET
• Trabaja en conjunto con otros frameworks MVVM
ReactiveUI
LINQ no es una tecnología monolitica, es un superconjunto de tecnologías agrupadas, cada una muy poderosa por si sola, en conjunto son absolutamente imparables.