Актуальное учебное пособие по обновлению (Rx)

Меня очень интересуют Reactive Extensions, но я не могу найти актуальный учебник. Я начал с Отказывание асинхронного блюза с Reactive Extensions для .NET, но он устарел. Я могу понять некоторые изменения, но я не мог заставить работать много примеров.

Я нашел много статей в Интернете, главным образом с 2009,2010, но они также несовместимы с текущей версией. Мне особенно интересно использовать Rx с Windows Phone и WebClient:

WebClient wc = new WebClient();

var o = Observable.FromEvent<DownloadStringCompletedEventArgs>(wc, "DownloadStringCompleted").Select(newString => newString.EventArgs.Result);

// Subscribe to the observable, and set the label text
o.Subscribe(s => myLabel.Text = s);

// Start the download
wc.DownloadStringAsync(new Uri("http://www.data.com/service"));

Больше не работайте, и замена FromEvent на FromEventPattern недостаточна.

Может кто-нибудь указать мне на обновленный ресурс?

Ответ 1

При изучении Rx первое, что нужно понять философию, лежащую в основе IObservable, и то, как она ориентируется на природу, сравнивается с IEnumerable. Я предлагаю следующее для хорошего объяснения: Упрощенный учебник для реактивных расширений [noher]

У Ли Кэмпбелла есть хорошая серия, объясняющая api и когда использовать их. Он также пытается поддерживать его в актуальном состоянии с последними выпусками: Reactive Extensions for.NET a Введение Серия теперь доступна в виде книги в Введение в Rx

Кстати, я также написал сообщение в блоге о решении проблемы реальной жизни с помощью rx: Использование реактивных расширений для потоковой передачи данных из базы данных

Надеюсь, что это поможет.

Ответ 2

Я нашел проект "learn by doing" под названием Reactive Extensions (Rx) Koans.
Он был обновлен в марте 2012 года, поэтому он довольно обновлен.

Определение "KoanKōans - это дзэн-слово, означающее просветление или пробуждение человека, обычно через загадку или загадку. Самый распространенный из них:" Какое звучание одной руки хлопает?"

Он составлен из серии почти полных модульных тестов, которые вы должны закончить таким образом, чтобы они проходили. Вы делаете это, "заполняя пробелы".

Это довольно аккуратно, довольно легко завершить и дает ценную информацию.

О да, и это сделало Барт Де Смит из команды Rx.

Здесь типичный unit test:

[TestMethod]
public void DoingInTheMiddle()
{
    var status = new List<String>();
    var daysTillTest = Range.Create(4, 1).ToObservable();
    daysTillTest.Do(d => status.Add(d + "=" + (d == 1 ? "Study Like Mad" : ___)))
                .Subscribe();
    Assert.AreEqual("[4=Party, 3=Party, 2=Party, 1=Study Like Mad]", status.AsString());
}

Ответ 3

На сегодняшний день лучшим ресурсом, который помог мне обернуть голову вокруг Rx, является: http://www.introtorx.com/

Я думаю, что это случается с большим количеством людей, но вы не можете найти этот сайт при поиске по ключевым словам "Rx tutorial". Подумайте, кому-то нужно добавить некоторые теги на сайт!

Ответ 4

Прочтите эту онлайн-книгу по строкам (каждая строка) и практикуйте. Это хорошо, я сделал, когда начал с Rx.

http://www.introtorx.com/