Ответ 1
Стоит щелкнуть ссылку узнать больше на теге [system.reactive]
, мы разместим там немного информации!
Из введения вы можете видеть, что Rx не является технологией очередности сообщений:
Reactive Extensions (Rx) - это библиотека для создания асинхронных и основанных на событиях программ с использованием наблюдаемых последовательностей и операторов запросов типа LINQ. System.Reactive - это корневое пространство имен, используемое в библиотеке. Используя Rx, разработчики представляют асинхронные потоки данных с использованием операторов LINQ и параметризуют concurrency в асинхронных потоках данных с использованием планировщиков. Проще говоря, Rx = Observables + LINQ + Schedulers.
Итак, Rx и очередность сообщений - действительно отличные технологии, которые могут хорошо дополнять друг друга. Классическим примером является услуга тикета цен на акции - это может быть доставлено через очередь сообщений, но затем преобразовано Rx для группировки, агрегации и фильтрации цен.
Вы можете пойти дальше: так как Entity Framework превращает запросы IQueryable<T>
в SQL, запущенные непосредственно в базе данных, вы можете создавать поставщиков, которые обращают запросы Rx IQbservable<T>
в собственные запросы, например, фильтр Where
может использовать встроенная фильтрация, которая существует во многих технологиях очередей сообщений для непосредственного применения фильтров. Это довольно много работы, хотя и трудно.
Это намного проще и нередко видеть сообщения очереди сообщений, поданные в Rx Subject
, чтобы входящие сообщения из очереди были преобразованы в поток Rx для легкого потребления на клиенте. Rx также широко используется в графических интерфейсах для работы с событиями на стороне клиента, такими как нажатия кнопок и изменения текстового поля, что значительно упрощает традиционно сложные сценарии, такие как drag-n-drop и автозаполнение текста через асинхронные серверные запросы. Там хорошие руки в лаборатории, охватывающие более поздний сценарий здесь. Это было написано против раннего выпуска Rx, но все же очень актуально.
Я рекомендую посмотреть эту видео-презентацию Барта де Смета за фантастическое введение: Лечение обработки событий с помощью реактивных расширений (Rx) - включая классическую демонстрационную версию Rx, которая пишет запрос через живой канал от Kinect, чтобы интерпретировать размахивание руками!