Además de la documentación de Microsoft, ¿hay una buena introducción y tutorial para el marco Microsoft Reactive (Rx)?
Además, ¿cuál es un buen ejemplo (con código) de que Reactive facilita un problema de programación que es difícil de resolver utilizando técnicas de codificación asincrónicas convencionales?
c#
.net
asynchronous
system.reactive
LBushkin
fuente
fuente
Respuestas:
ACTUALIZACIÓN : Las publicaciones de blog a continuación han sido reemplazadas por mi libro en línea www.IntroToRx.com . Es un libro completo de 19 capítulos disponible de forma gratuita. Puede navegar en la web o descargar la versión de mobi para su Kindle. También puede obtenerlo directamente de Amazon por una pequeña tarifa (~ 99c / 77p). Si el libro no cumple con sus necesidades o expectativas, avíseme (el Autor) y lo haremos mejor para la versión 2.
Gracias por el enlace a la publicación Hot / Cold. Esta es solo una parte de la serie completa ,
Seguiré actualizando este blog con más cosas introductorias de Rx.
Para cosas más avanzadas, desea ir al Foro Rx (MSDN).
fuente
Aquí hay un sitio wiki con muchos ejemplos de código que demuestran cómo usar diferentes características del marco .NET Rx: http://rxwiki.wikidot.com/101samples
Encontré que este es el sitio más completo que existe, y el que es más rápido para comenzar.
fuente
Sitio de MSDN para Rx-Framework
Para un desarrollador que profundiza, el código fuente
Buena nota austriaca sobre Rx
Esto es lo mejor que he visto: DevCamp 2010 Keynote - Rx: Curando su blues de programación asincrónica
Algunos videos interesantes en el canal 9
Kim Hamilton y Wes Dyer: Inside .NET Rx e IObservable / IObserver en el BCL (VS 2010)
Una entrevista con el creador de Rx: Expert to Expert: Brian Beckman y Erik Meijer - Inside the .NET Reactive Framework (Rx)
Una introducción del creador de Rx
Un artículo de Codeproject
Otro curso primer blog con enlaces (nuevo)
fuente
Aquí hay un ejemplo de algo que es fácil de hacer con programación reactiva, pero desordenado (si no desafiante) con eventos clásicos, dibuja líneas mientras el botón del mouse está presionado. Es legible, no hay manejo explícito del estado:
(Debo confesar que en ese ejemplo, Pairwise () es de cosecha propia ...)
Lo más importante de IObservable es que es 'composable', al igual que IEnumerable.
Recomiendo el video mencionado en otra respuesta. De hecho, hay varios videos diferentes sobre el tema en Channel9:
fuente
TakeUntil
, que parece un buen ajuste.var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
?Una vez que haya revisado algunas de las cosas básicas, incluido el HandsOnLab, asegúrese de revisar los Observables calientes y fríos de Lee Campbell, que me quitaron algo del misterio arcano de Rx :)
fuente
Puede encontrar útil esta serie de artículos (hay cuatro) sobre LINQ reactivo: Programación reactiva (II.) - Presentación de LINQ reactivo .
Él tiene un ejemplo de cómo escribir un juego usándolo, por lo que debería ser lo que estás buscando.
fuente
También encontré Introducción al Marco Reactivo Parte I en
CodeBetter.com
. Hay una secuela de la primera parte en el mismo sitio.Espero que esto ayude.
fuente
Curiosamente, la página de inicio de Reactive Extensions enlaza con una docena de videos y blogs, pero se olvida de enlazar con la documentación de referencia oficial completa. Es una lástima, si conoces al equipo, ¡pídeles que arreglen su sitio web!
fuente
Juega con Rx Sandbox para obtener una visión muy intuitiva de lo que significan los diferentes combinadores. Esta es la mejor herramienta de aprendizaje que he visto.
fuente
Lea estos artículos y, en particular, descargue el código fuente relacionado y juegue con él.
Confía en que esto ayudará
fuente
Para responder a la segunda pregunta, aquí hay un problema que puede beneficiarse mucho de Rx. Se llama "Hazte rico rápidamente".
Has desarrollado un juego con el mismo nombre y se está vendiendo bastante bien. Pero solo está disponible en sus tiendas al por mayor. Para facilitar el procesamiento de efectivo, tiene una cinta transportadora que fluye hacia usted.
(Por favor, siéntase libre de cambiar la historia anterior :))
Los vendedores colocan fajos de efectivo encuadernados sin etiquetas que indiquen la cantidad y el tipo de billetes en el fajo. Tu trabajo es ordenar y contar el dinero. Más adelante, cuando obtenga más dinero, puede contratar a otros para que lo ayuden.
En este caso, la fuente es una fuente asíncrona de fajos de dinero (Productor). Sus empleados y proveedores esperan dinero, pero debe consumir los tacos, desempaquetarlos y usar su lógica comercial personalizada para reempaquetar según corresponda para pagarlos.
Los vendedores se están ejecutando en su propio hilo, para que no tengan que esperar a que cuentes lo que tiran en el cinturón. Su tiempo se aprovecha mejor si le dicen cuándo hay más dinero disponible para contar, hasta entonces puede hacer otro trabajo.
Puede representar cada taco con un byte [].
Esta es una situación bastante común en el mundo real; cuando recupera cualquier recurso [por ejemplo, páginas web para motores de búsqueda, imágenes o videos] en una red o datos de periféricos, los obtiene en trozos de bytes (posiblemente con encabezados). En un solo subproceso, o en un entorno de subprocesos múltiples con el que es demasiado difícil trabajar, tiende a agregarlos y procesarlos. ¡¡Ya no!!
fuente
Jesse Liberty tiene un libro publicado en octubre de 2011:
Amazon.com: Programación de extensiones reactivas y LINQ
Y están los videos de RxWorkshop en Channel9:
Channel9: RxWorkshop
fuente
¿Su cláusula de "exclusión de documentación de Microsoft" se extiende a los videos en el Canal 9?
Del creador del marco reactivo Erik Meijer: - Experto a experto: Brian Beckman y Erik Meijer - Dentro del .NET Reactive Framework (Rx)
Nuevo : Comenzando con Rx Extensions para .NET
fuente
Además de los enlaces de Andreas Hoffmann (los encontré muy útiles cuando estaba aprendiendo Rx)
Aquí hay algunos de Bart De Smet (un tipo MUY inteligente que explica muy bien las cosas) Videos:
Un poco a través de Rx:
Rx - Curando tus Blues de programación asincrónica
Algunos sangrientos interiores + alguna filosofía, estos videos son realmente esclarecedores:
Min LINQ: la esencia de LINQ
(el video anterior trata de cómo LINQ se relaciona un poco con otras cosas, como Rx)
Observaciones sobre IQbservable - The Dual of IQueryable
fuente
DEVHOL202: curar el blues asincrónico con las extensiones reactivas para .NET (PDF, 2 MB) es el mejor laboratorio / tutorial que he visto hasta ahora. Te guía a través de los conceptos básicos de la biblioteca, para que puedas construir y diseñar lo que has aprendido.
También hay una versión de JavaScript. Busque en Google "Extensiones reactivas en el laboratorio".
fuente
Me gustó Introducción a Rx Parte 1 - Tipos de clave , y mostró las características clave.
fuente