代码之家  ›  专栏  ›  技术社区  ›  LBushkin

很好地介绍了.NET反应式框架[已关闭]

  •  207
  • LBushkin  · 技术社区  · 15 年前

    除了Microsoft文档外,是否有一个关于Microsoft反应式(RX)框架的良好介绍和教程?

    另外,什么是一个很好的例子(有代码的)反应性使编程问题更容易解决,这是挑战使用传统的异步编码技术?

    16 回复  |  直到 7 年前
        1
  •  90
  •   C2H6O    8 年前

    更新 :以下博客文章已被我的在线书籍取代 www.IntroToRx.com . 这是一本综合性的19章书,免费提供。你可以在网上浏览,或者下载Kindle的Mobi版本。你也可以直接从亚马逊获得它,只需很少的费用(~99c/77p)。如果这本书不符合你的需求或期望,让我(作者)知道,我们会为V2做得更好。

    感谢您链接到“热/冷”帖子。这只是 full series ,请

    1. RX简介
    2. 静态和扩展方法
    3. 终身管理“完成和取消订阅
    4. 流量控制
    5. 组合多个iobservable流
    6. 调度和线程
    7. 冷热观测
    8. 测试RX
    9. 缓冲区、窗口、联接和组联接

    我会不断更新这个博客,更多的RX介绍性的东西。

    对于更高级的东西,你想去 Rx Forum (MSDN)。

        2
  •  83
  •   bernhof    13 年前

    下面是一个wiki站点,其中有许多代码示例演示如何使用.NET RX框架的不同功能: http://rxwiki.wikidot.com/101samples

    我发现这是最全面的网站,也是最快开始的。

        4
  •  16
  •   Benjol    15 年前

    下面是一个很容易处理反应式编程的例子,但是对于经典事件来说很混乱(如果不具有挑战性的话),它在鼠标按钮按下时绘制线条。它是可读的,没有显式的状态处理:

    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一样。

    我粗略地推荐了另一个答案中提到的视频。事实上,在Channel9上有几个关于这个主题的不同视频:

        5
  •  12
  •   Oliver    14 年前

    一旦你经历了一些基本的事情,包括 HandsOnLab 一定要退房 Lee Campbell's Hot and Cold Observables 这让我从处方中去掉了一些神秘的东西:)

        6
  •  4
  •   Peter Mortensen icecrime    13 年前

    您可能会发现这一系列关于反应性LINQ的文章(共有四篇)非常有用: Reactive programming (II.) - Introducing Reactive LINQ .

    他有一个用它写游戏的例子,所以它应该是你想要的。

        7
  •  4
  •   Peter Mortensen icecrime    13 年前

    我也发现了 Introducing the Reactive Framework Part I CodeBetter.com . 在同一个网站上有第一部分的续集。

    我希望这对你有帮助。

        8
  •  4
  •   Colonel Panic    13 年前

    奇怪的是,反应性扩展 homepage 链接到十几个视频和博客,但忘记链接到全面的官方参考文档。太可惜了,如果你认识这个团队,请让他们修复他们的网站!

        9
  •  3
  •   Omer Raviv    14 年前

    玩弄 Rx Sandbox 以非常直观的方式了解不同组合器的含义。这是我见过的最好的学习工具。

        10
  •  2
  •   amazedsaint    15 年前
        11
  •  2
  •   Peter Mortensen icecrime    13 年前

    为了回答第二个问题,这里有一个问题可以从Rx中获益很多。它被称为“快速致富”。

    你开发了一款同名的游戏,它的销量相当不错。但它只能在你们的商店批发。为了使现金处理更容易,你有一个传送带,向你流动。

    (请随意更改上述内容:)

    销售人员把一捆捆现金放在上面,上面没有标签标明钞票的数量和类型。你的工作是把钱分类清点。以后,当你得到更多的钱时,你可以雇佣其他人来帮助你。

    在这种情况下,资金来源是一个非同步的现金来源(生产者)。 您的员工和供应商希望得到钱,但您必须消耗这些钱,打开它们的包装,并使用您的定制业务逻辑重新包装以支付它们。

    销售人员在自己的线上运行,这样他们就不必等着你数他们在皮带上扔的东西了。如果有人告诉你何时有更多的钱可数,你的时间会得到最好的利用,直到那时你才可以做其他的工作。

    您可以用一个字节[]表示每个WAD。

    这是一种非常常见的现实情况;当您从网络上检索任何资源(例如搜索引擎、图像或视频的网页)或从外围设备获取数据时,您将以字节为单位(可能带有标题)。在一个线程中,或者在一个太难处理的多线程环境中,您倾向于聚合和处理它们。再也没有了!!

        12
  •  2
  •   Shane Castle    13 年前

    Jesse Liberty出版了一本书,2011年10月出版:

    Amazon.com: Programming Reactive Extensions and LINQ

    频道9上有RXWorkshop视频:

    Channel9: RxWorkshop

        13
  •  1
  •   Matt Breckon    15 年前

    您的“排除Microsoft文档”条款是否扩展到了第9频道的视频?

    来自反应框架的创建者Erik Meijer: - Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)

    全新的 : Getting Started with Rx Extensions for .NET

        14
  •  1
  •   gideon    14 年前

    除了Andreas Hoffmann的链接(在我学习Rx时发现它们非常有用)

    以下是巴特·德·斯密特(一个非常聪明的人,能很好地解释事情)的视频:

    有点像是RX的磨合:
    Rx - Curing your Asynchronous Programming Blues

    一些血淋淋的内心+一些哲学,这些视频真的很有启发性:
    Min LINQ - The essence of LINQ
    (以上视频介绍了Linq与Rx等其他事物的关系)

    Observations on IQbservable - The Dual of IQueryable

        15
  •  1
  •   Peter Mortensen icecrime    13 年前

    DEVHOL202 – Curing the asynchronous blues with the Reactive Extensions for .NET (pdf,2_mb)是我迄今为止看到的最好的实验室/教程。它指导您完成库的基础知识,以便您可以根据所学内容进行构建和设计。

    还有一个javascript版本。在谷歌上搜索“反应式扩展实践实验室”。

        16
  •  0
  •   Peter Mortensen icecrime    13 年前

    我喜欢 Introduction to Rx Part 1 - Key types 并展示了其主要特点。