Помимо документации Microsoft, есть ли хорошее введение и учебное пособие по структуре Microsoft Reactive (Rx)?
Кроме того, что является хорошим примером (с кодом), который Reactive облегчает проблему программирования, которую сложно решить с помощью традиционных методов асинхронного кодирования?
c#
.net
asynchronous
system.reactive
LBushkin
источник
источник
Ответы:
ОБНОВЛЕНИЕ : сообщения в блоге были заменены моей онлайн-книгой www.IntroToRx.com . Это всеобъемлющая книга из 19 глав, доступная бесплатно. Вы можете просмотреть его в Интернете или скачать мобильную версию для своего разжигания. Вы также можете получить его напрямую из Amazon за небольшую плату (~ 99c / 77p). Если книга не соответствует вашим потребностям или ожиданиям, дайте мне знать (автору), и мы добьемся большего успеха для v2.
Спасибо за ссылку на сообщение Hot / Cold. Это только одна часть полной серии ,
Я буду обновлять этот блог новыми вводными материалами по Rx.
Для более продвинутых вещей вы хотите перейти на Rx Forum (MSDN).
источник
Вот вики-сайт с множеством примеров кода, демонстрирующих, как использовать различные функции платформы .NET Rx: http://rxwiki.wikidot.com/101samples
Я обнаружил, что это самый всеобъемлющий сайт, с которого быстрее всего начать.
источник
Сайт MSDN для Rx-Framework
Для разработчика, углубляясь, исходный код
Прикольный австрийский лейтмотив про Rx
Это лучшее, что я видел: DevCamp 2010 Keynote - Rx: вылечить свой асинхронный блюз программирования
Несколько интересных видео на 9 канале
Ким Гамильтон и Уэс Дайер: внутри .NET Rx и IObservable / IObserver в BCL (VS 2010)
Интервью с создателем из Rx: эксперта до эксперта: Брайан Бекман и Эрик Мейер - внутри .NET Reactive Framework (Rx)
Введение от создателя Rx
Статья Codeproject
Еще один курс первого блога со ссылками (новый)
источник
Вот пример чего-то, что легко сделать с помощью реактивного программирования, но беспорядочно (если не сложно) с классическими событиями, оно рисует линии, когда кнопка мыши нажата. Это читабельно, нет явной обработки состояния:
(Я должен признаться, что в этом примере Pairwise () является доморощенным ...)
Самая важная вещь в IObservable - это то, что он «компонуется», как и IEnumerable.
Я настоятельно рекомендую видео, упомянутое в другом ответе. На самом деле на Channel 9 есть несколько разных видео на эту тему:
источник
TakeUntil
, который называется хорошо подходящим.var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
.После того, как вы ознакомились с некоторыми базовыми вещами, включая HandsOnLab, обязательно посмотрите «Горячие и холодные наблюдаемые» Ли Кэмпбелла, которые вынесли мне тайну тайны Rx для меня :)
источник
Вы можете найти эту серию статей (есть четыре) о реактивном LINQ полезными: Реактивное программирование (II.) - Введение в Reactive LINQ .
У него есть пример написания игры, использующей его, так что, надеюсь, это должно быть то, что вы ищете.
источник
Я также нашел Представление Reactive Framework Part I на
CodeBetter.com
. Продолжение первой части на этом же сайте.Я надеюсь, что это поможет вам.
источник
Как ни странно, домашняя страница Reactive Extensions ссылается на дюжину видео и блогов, но забывает ссылаться на исчерпывающую официальную справочную документацию. Это позор, если вы знаете команду, пожалуйста, попросите их исправить свой сайт!
источник
Играйте с Rx Sandbox, чтобы получить очень интуитивное представление о том, что означают различные комбинаторы. Это лучший инструмент обучения, который я видел.
источник
Просмотрите эти статьи и, в частности, загрузите соответствующий исходный код и поиграйте с ним.
Поверьте, это поможет
источник
Чтобы ответить на второй вопрос, вот проблема, которая может извлечь большую пользу из Rx. Это называется «Быстро разбогатеть».
Вы разработали игру с таким же названием, и она довольно хорошо продается. Но это доступно только в ваших магазинах для оптовой продажи. Чтобы упростить обработку наличных, у вас есть конвейер, который направляется к вам.
(Пожалуйста, не стесняйтесь изменить историю выше :))
Продавцы размещают на нем пачки наличных без ярлыков, указывающих количество и тип купюр в пачке. Ваша задача сортировать и считать деньги. Позже, когда вы получите больше денег, вы можете нанять других, чтобы помочь вам.
В этом случае источник является асинхронным источником пачек наличных (производитель). Ваши сотрудники и поставщики ожидают денег, но вы должны потреблять пачки, распаковывать их и использовать свою собственную бизнес-логику, чтобы переупаковывать их соответствующим образом, чтобы платить им.
Продавцы работают по собственной инициативе, поэтому им не нужно ждать, пока вы посчитаете, что они бросают на пояс. Ваше время лучше всего использовать, если вам сообщат, когда будет доступно больше денег для подсчета, до тех пор, пока вы не сможете выполнять другую работу.
Вы можете представлять каждую пачку байтом [].
Это довольно распространенная ситуация в реальном мире; когда вы извлекаете какой-либо ресурс [например, веб-страницы для поисковых систем, изображения или видео] в сети или данные из периферийных устройств, вы получаете их кусками байтов (возможно, с заголовками). В одном потоке или в многопоточной среде, с которой слишком сложно работать, вы склонны объединять и обрабатывать их. Уже нет!!
источник
У Джесси Либерти есть книга, опубликованная в октябре 2011 года:
Amazon.com: программирование реактивных расширений и LINQ
И есть видео RxWorkshop на Channel 9:
Канал 9: RxWorkshop
источник
Распространяется ли ваша оговорка «исключая документацию Microsoft» на видеоролики на 9 канале?
От создателя реактивной платформы Эрика Мейера: - Эксперт к Эксперту: Брайан Бекман и Эрик Мейер - Внутри .NET Reactive Framework (Rx)
Новое : начало работы с расширениями Rx для .NET
источник
В дополнение к ссылкам Андреаса Хоффмана (они мне очень помогли, когда я изучал Rx)
Вот некоторые из Барт де Смет (ОЧЕНЬ умный парень, который все объясняет очень хорошо) Видео:
Что-то вроде прогона Rx:
Rx - лечение асинхронного программирования блюза
Немного внутренностей + немного философии, эти видео действительно поучительны:
Min LINQ - Суть LINQ
(вышеприведенное видео рассказывает о том, как LINQ вроде как относится к другим вещам, например, к Rx)
Наблюдения за IQbservable - Двойственность IQueryable
источник
DEVHOL202 - Лечение асинхронного блюза с помощью Reactive Extensions для .NET (PDF, 2 МБ) - лучшая лаборатория / учебник, который я когда-либо видел. Он проведет вас через основы библиотеки, чтобы вы могли строить и разрабатывать то, что вы узнали.
Существует также версия JavaScript. Поиск Google для "Реактивных Расширений Руки на Лаборатории".
источник
Мне понравилось введение в Rx, часть 1 - ключевые типы , и оно показало ключевые особенности.
источник