Хорошее введение в реактивную структуру .NET [закрыто

StackOverflow https://stackoverflow.com/questions/1596158

Вопрос

Помимо документации Microsoft, есть ли хорошее введение и учебник в рамках Microsoft Reactive (RX)?

Кроме того, что является хорошим примером (с кодом), который реагирует легче из задачи программирования, которая сложна для решения использования традиционных асинхронных методов кодирования?

Это было полезно?

Решение 2

Вот вики -сайт с множеством примеров кода, демонстрирующих, как использовать различные функции .NET RX Framework: http://rxwiki.wikidot.com/101samples

Я обнаружил, что это самый полный сайт, и тот, с которым можно быстро начать.

Другие советы

ОБНОВИТЬ: Посты в блоге ниже были заменены моей онлайн -книгой www.introtorx.com. Анкет Это полная книга из 19 главы, доступная бесплатно. Вы можете просмотреть его в Интернете или загрузить версию MOBI для вашего Kindle. Вы также можете получить его напрямую от Amazon за крошечную плату (~ 99C / 77P). Если книга не соответствует вашим потребностям или ожиданиям, сообщите мне (автор), и мы сделаем лучше для V2.

Спасибо за ссылку на горячий/холодный пост. Это только одна часть Полная серия,

  1. Введение в RX
  2. Статические и расширения методов
  3. Управление пожизненным временем - заполнение и отмену подписки
  4. Управление потоком
  5. Объединение нескольких потоков, которые можно получить
  6. Планирование и потоки
  7. Горячие и холодные наблюдаемые
  8. Тестирование Rx
  9. Буфер, окно, присоединение и групповое присоединение

Я буду продолжать обновлять этот блог с большим количеством ввода RX.

Для более продвинутых вещей, которые вы хотите пойти на RX Forum (MSDN).

Вот пример чего -то, что легко сделать с реактивным программированием, но грязный (если не бросает вызов) с классическими событиями, он привлекает линии, в то время как кнопка мыши не работает. Это читабельно, нет явного обращения с состоянием:

var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();

var mouseMoveWhileDown = 
    from md in this.GetMouseDown()
    from mv in this.GetMouseMove().Until(this.GetMouseUp())
    select new Point(mv.X, mv.Y);

mouseMoveWhileDown
    .Pairwise()
    .Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2)); 

(Я должен признаться в том, что в этом примере Pairwise () Доморопился ...)

Самая важная вещь в iobServable - это то, что он «композиционный», как и Ienumerable.

Я рекомендую видео, упомянутое в другом ответе. На самом деле есть несколько разных видео на этой теме на канале9:

Как только вы прошли через некоторые основные вещи, включая Handsonlabубедитесь, что вы проверяете Горячие и холодные смотревки Ли Кэмпбелла который взял некоторую загадку для меня из RX :)

Вы можете найти эту серию статей (их четыре) о реактивном LINQ полезно:Реактивное программирование (II.) - Внедрение реактивного LINQ.

У него есть пример написания игры с использованием ее, так что, надеюсь, это должно быть то, что вы ищете.

Я также нашел Представляем реактивную структуру, часть I на CodeBetter.com. Анкет Существует продолжение первой части на том же сайте.

Я надеюсь, что это поможет вам.

Странно, реактивные расширения домашняя страница Ссылки на дюжину видео и блогов, но забывает ссылку на всеобъемлющую официальную справочную документацию. Это кричащий стыд, если вы знаете команду, пожалуйста, попросите их исправить свой сайт!

Играть с RX Песочница Чтобы получить очень интуитивно понятный взгляд на то, что означают разные комбинаторы. Это лучший инструмент обучения, который я видел.

Пройдите через эти статьи и, в частности, загрузите связанный исходный код и поиграйте с ним.

Поверьте, это поможет

Чтобы ответить на второй вопрос, вот проблема, которая может принести большую пользу от RX. Это называется «разбогатеть быстро».

Вы разработали игру с тем же именем, и она продается довольно хорошо. Но он доступен только в ваших магазинах для оптовой торговли. Чтобы облегчить обработку наличных денег, у вас есть конвейерная лента, которая течет к вам.

(Пожалуйста, не стесняйтесь изменить историю выше :))

Продавные люди помещают на него связанные палочки наличных, без метков, указывающих сумму и тип счетов в WAD. Ваша работа - сортировать и подсчитать деньги. Позже, когда вы получите больше денег, вы можете нанять других, чтобы помочь вам.

В этом случае источник является асинхронным источником вадов денег (производитель). Ваши сотрудники и поставщики ожидают деньги, но вы должны потреблять палочки, распаковать их и использовать свою пользовательскую бизнес -логику для переупаковки, как уместно, чтобы их платить.

Продавцы бегут в своей собственной ветке, так что им не нужно ждать, пока вы считаете то, что они бросают на пояс. Ваше время лучше всего используется, если вам говорят, когда можно подсчитать больше денег, до тех пор вы сможете выполнять другую работу.

Вы можете представлять каждый вад байтом [].

Это довольно распространенная ситуация в реальном мире; Когда вы получаете любой ресурс [например, веб -страницы для поисковых систем, изображений или видео] в сети или данных с периферийных устройств, вы получаете их в кусочках байтов (возможно, с заголовками). В одной теме или в многопоточной среде, с которой слишком сложно работать, вы склонны собирать их и обрабатывать их. Уже нет!!

У Джесси Либерти есть книга, опубликованная октябрь 2011 года:

Amazon.com: программирование реактивных расширений и LINQ

И есть видеоролики RxWorkShop на канале9:

Канал9: RxWorkshop

Ваша пункт «исключая документацию Microsoft» распространяется на видео на 9 -м канале?

От создателя реактивной структуры Эрик Мейер: - Эксперт эксперта: Брайан Бекман и Эрик Мейер - Внутри реактивной структуры .NET (RX)

Совершенно новый: Начало работы с расширениями RX для .NET

В дополнение к ссылкам Андреаса Хоффмана (нашел их очень полезными, когда я изучал RX)

Вот некоторые из Bart de Smet (очень умный парень, который действительно хорошо объясняет) видео:

Вроде пробега через RX:
RX - лечение вашего асинхронного программирования блюза

Некоторые кровавые внутренности + некоторая философия, эти видео действительно поучительны:
Min linq - сущность Linq
(Приведенное выше видео имеет дело с тем, как LINQ относится к другим вещам, например, RX)

Наблюдения на iqbservable - двойник iqueryable

Devhol202 - лечение асинхронного блюза с помощью реактивных расширений для .net (PDF, 2 МБ) - лучшая лаборатория/учебник, который я видел до сих пор. Он проводит вас через основы библиотеки, чтобы вы могли создавать и дизайн на том, что вы узнали.

Есть также версия JavaScript. Поиск Google для "Реактивных расширений рук на лаборатории".

мне понравилось Введение в RX Часть 1 - Типы ключей, и это показало ключевые особенности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top