Além da documentação da Microsoft, há uma boa introdução e tutorial para a estrutura do Microsoft Reactive (Rx)?
Além disso, qual é um bom exemplo (com código) de que o Reactive facilita um problema de programação difícil de resolver usando técnicas convencionais de codificação assíncrona?
c#
.net
asynchronous
system.reactive
LBushkin
fonte
fonte
Respostas:
ATUALIZAÇÃO : As postagens abaixo foram substituídas pelo meu livro on-line www.IntroToRx.com . É um livro abrangente de 19 capítulos disponível gratuitamente. Você pode navegar na web ou baixar a versão mobi para o seu Kindle. Você também pode obtê-lo diretamente da Amazon por uma pequena taxa (~ 99c / 77p). Se o livro não atender às suas necessidades ou expectativas, informe-me (o Autor) e faremos um melhor para a v2.
Obrigado pelo link para a publicação Hot / Cold. Esta é apenas uma parte da série completa ,
Continuarei atualizando este blog com mais informações introdutórias sobre o Rx.
Para coisas mais avançadas, você quer ir ao Rx Forum (MSDN).
fonte
Aqui está um site wiki com muitos exemplos de código que demonstram como usar diferentes recursos da estrutura .NET Rx: http://rxwiki.wikidot.com/101samples
Achei que esse era o site mais abrangente do mercado e o mais rápido de começar.
fonte
Site MSDN para Rx-Framework
Para um desenvolvedor que está se aprofundando, o código-fonte
Apresentação legal austríaca sobre Rx
Este é o melhor que eu já vi: Keynote do DevCamp 2010 - Rx: curando seus blues de programação assíncrona
Alguns vídeos interessantes no canal 9
Kim Hamilton e Wes Dyer: Por dentro do .NET Rx e IObservable / IObserver no BCL (VS 2010)
Uma entrevista com o criador do Rx: Especialista em Especialista: Brian Beckman e Erik Meijer - Por Dentro do .NET Reactive Framework (Rx)
Uma introdução do criador do Rx
Um artigo do Codeproject
Outro curso primeiro blog com links (novo)
fonte
Aqui está um exemplo de algo que é fácil de fazer com a programação reativa, mas confuso (se não desafiador) com eventos clássicos, ele desenha linhas enquanto o botão do mouse está pressionado. É legível, não há manipulação explícita de estado:
(Devo confessar que nesse exemplo, Pairwise () é feito em casa ...)
A coisa mais importante sobre o IObservable é que ele é 'composível', assim como o IEnumerable.
Eu recomendo o vídeo mencionado em outra resposta. De fato, existem vários vídeos diferentes sobre o assunto no Channel9:
fonte
TakeUntil
, que parece ser um bom ajuste.var pairwise = source.Zip(source.Skip(1), (x, y) => new Tuple(x, y))
.Depois de passar por algumas das coisas básicas, incluindo o HandsOnLab, verifique os Observables Quentes e Frios de Lee Campbell, que tiraram um pouco do mistério arcano de Rx para mim :)
fonte
Você pode achar útil essa série de artigos (existem quatro) sobre o LINQ reativo: Programação reativa (II.) - Introdução ao LINQ reativo .
Ele tem um exemplo de como escrever um jogo usando-o, portanto, esperamos que seja o que você está procurando.
fonte
Eu também achei Apresentando o Reactive Framework Parte I em
CodeBetter.com
. Há uma sequência para a primeira parte no mesmo site.Eu espero que isso te ajude.
fonte
Estranhamente, a página inicial das Extensões reativas se vincula a uma dúzia de vídeos e blogs, mas esquece de se vincular à documentação abrangente de referência oficial. É uma pena, se você conhece a equipe, peça para que eles consertem o site!
fonte
Brinque com o Rx Sandbox para obter uma visão muito intuitiva do significado dos diferentes combinadores. Esta é a melhor ferramenta de aprendizado que eu já vi.
fonte
Leia estes artigos e, em particular, faça o download do código-fonte relacionado e brinque com ele.
Confie que isso ajudará
fonte
Para responder à segunda pergunta, aqui está um problema que pode se beneficiar muito com o Rx. Chama-se "Fique rico rapidamente".
Você desenvolveu um jogo com o mesmo nome e está vendendo muito bem. Mas está disponível apenas em suas lojas para atacado. Para facilitar o processamento de dinheiro, você tem uma correia transportadora que flui em sua direção.
(Por favor, sinta-se livre para mudar a história acima :))
O pessoal de vendas coloca maços de dinheiro vinculados, sem rótulos, indicando a quantidade e o tipo de notas no maço. Seu trabalho é classificar e contar o dinheiro. Mais tarde, quando você receber mais dinheiro, poderá contratar outras pessoas para ajudá-lo.
Nesse caso, a fonte é uma fonte assíncrona de maços de dinheiro (Produtor). Seus funcionários e fornecedores esperam dinheiro, mas você precisa consumir os maços, desempacotá-los e usar sua lógica comercial personalizada para reembalar conforme apropriado para pagá-los.
O pessoal de vendas está executando em seu próprio segmento, para que eles não precisem esperar que você conte o que jogam no cinto. Seu tempo é melhor utilizado se lhe for dito quando mais dinheiro está disponível para contar, até então você poderá fazer outro trabalho.
Você pode representar cada maço por um byte [].
Esta é uma situação do mundo real bastante comum; ao recuperar qualquer recurso [por exemplo, páginas da web para mecanismos de pesquisa, imagens ou vídeos] em uma rede ou dados de periféricos, você os obtém em pedaços de bytes (possivelmente com cabeçalhos). Em um único encadeamento ou em um ambiente com vários encadeamentos muito difícil de trabalhar, você tende a agregá-los e processá-los. Não mais!!
fonte
Jesse Liberty tem um livro publicado em outubro de 2011:
Amazon.com: programação de extensões reativas e LINQ
E há os vídeos do RxWorkshop no Channel9:
Channel9: RxWorkshop
fonte
Sua cláusula "excluindo documentação da Microsoft" se estende aos vídeos no Canal 9?
Do criador da estrutura reativa Erik Meijer: - Especialista em especialista: Brian Beckman e Erik Meijer - Por dentro do .NET Reactive Framework (Rx)
Novíssimo : Introdução ao Rx Extensions for .NET
fonte
Além dos links de Andreas Hoffmann (achei muito útil quando eu estava aprendendo Rx)
Aqui estão alguns de Bart De Smet (um cara MUITO esperto que explica as coisas muito bem) Vídeos:
Como uma espécie de Rx:
Rx - curando seus blues de programação assíncrona
Alguns interiores sangrentos + alguma filosofia, esses vídeos são realmente esclarecedores:
Min LINQ - A essência do LINQ
(o vídeo acima trata de como o LINQ meio que se relaciona com outras coisas, como Rx)
Observações sobre IQbservable - O duplo de IQueryable
fonte
DEVHOL202 - Curando o blues assíncrono com as Extensões reativas para .NET (PDF, 2 MB) é o melhor laboratório / tutorial que eu já vi até agora. Ele o guia pelos conceitos básicos da biblioteca, para que você possa criar e projetar o que aprendeu.
Há também uma versão JavaScript. Pesquise no Google por "Extensões reativas práticas no laboratório".
fonte
Eu gostei da Introdução ao Rx Parte 1 - Tipos de chave e mostrou os principais recursos.
fonte