Pergunta

Além da documentação da Microsoft, há uma boa introdução e tutorial à estrutura Microsoft Reactive (Rx)?

Além disso, qual é um bom exemplo (com código) de que o Reactive facilita um problema de programação que é difícil de resolver usando técnicas convencionais de codificação assíncrona?

Foi útil?

Solução 2

Aqui está um site wiki com muitos exemplos de código demonstrando como usar diferentes recursos da estrutura .NET RX: http://rxwiki.wikidot.com/101samples

Achei que este era o site mais abrangente do mercado, e o mais rápido de começar.

Outras dicas

ATUALIZAR:As postagens do blog 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, avise-me (o autor) e faremos melhor na v2.

Obrigado pelo link para a postagem Quente / Frio.Esta é apenas uma parte do série completa,

  1. Introdução ao Rx
  2. Métodos estáticos e de extensão
  3. Gerenciamento vitalício – Concluindo e cancelando assinatura
  4. Controle de fluxo
  5. Combinando vários fluxos IObservable
  6. Agendamento e segmentação
  7. Observáveis ​​quentes e frios
  8. Testando Rx
  9. Buffer, janela, junção e junção de grupo

Continuarei atualizando este blog com mais coisas introdutórias ao Rx.

Para coisas mais avançadas, você deseja ir para o Fórum Rx (MSDN).

Aqui está um exemplo de algo fácil de fazer com a programação reativa, mas confusa (se não for desafiadora) com eventos clássicos, ele desenha linhas enquanto o botão do mouse está inativo. É legível, não há manipulação explícita de estado:

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)); 

(Devo confessar que nesse exemplo, parewise () é cultivado em casa ...)

A coisa mais importante sobre o IOBServable é que é "composível", assim como Ienumerable.

Eu recomendo o vídeo mencionado em outra resposta. De fato, existem vários vídeos diferentes sobre o assunto no Channel9:

Depois de passar por algumas das coisas básicas, incluindo o HandsOnLabcertifique-se de verificar Observáveis ​​Quentes e Frios de Lee Campbell o que tirou um pouco do mistério arcano de Rx para mim :)

Você pode encontrar esta série de artigos (existem quatro) sobre o LINQ reativo útil:Programação reativa (ii.) - Introdução ao LINQ reativo.

Ele tem um exemplo de escrever um jogo usando -o, por isso deve ser o que você está procurando.

Eu também encontrei Apresentando a estrutura reativa Parte I sobre CodeBetter.com. Há uma sequência da primeira parte no mesmo site.

Eu espero que isso te ajude.

Estranhamente, as extensões reativas pagina inicial Links para uma dúzia de vídeos e blogs, mas esquece de vincular a documentação de referência oficial abrangente. É uma vergonha, se você conhece a equipe, peça que eles consertem o site!

Brincar com RX Sandbox Para ter uma visão muito intuitiva do que os diferentes combinadores significam. Esta é a melhor ferramenta de aprendizado que eu já vi.

Passe por esses artigos e, em particular, faça o download do código -fonte relacionado e brinque com ele.

Confie que isso vai ajudar

Para responder à segunda pergunta, aqui está um problema que pode se beneficiar muito do RX. É chamado de "ficar rico rápido".

Você desenvolveu um jogo com o mesmo nome e está vendendo muito bem. Mas está disponível apenas em suas lojas para o atacado. Para facilitar o processamento de dinheiro, você tem uma correia transportadora que flui em sua direção.

(Por favor, sinta -se à vontade para mudar a história acima :))

Os vendedores colocam maços limitados em dinheiro, sem etiquetas, indicando a quantidade e o tipo de contas no WAD. Seu trabalho é classificar e contar o dinheiro. Mais tarde, quando você recebe mais dinheiro, pode 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ê deve consumir os WADs, desembalar -os e usar sua lógica de negócios personalizada para reembalar conforme apropriado para pagá -los.

O pessoal de vendas está executando em seu próprio tópico, para que não precisem esperar que você conte o que joga no cinto. Seu tempo é melhor utilizado se você é informado quando mais dinheiro estiver disponível para contar, até então você pode fazer outro trabalho.

Você pode representar cada wad por um byte [].

Esta é uma situação do mundo real bastante comum; Quando você recupera 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 thread, ou em um ambiente multithread que é muito difícil de trabalhar, você tende a agregá-los e processá-los. Não mais!!

Jesse Liberty tem um livro, publicado em outubro de 2011:

Amazon.com: Extensões reativas de programação e LINQ

E há os vídeos RXWorkshop no Channel9:

Channel9: RxWorkshop

Sua cláusula "excluindo a documentação da Microsoft" se estende aos vídeos no Canal 9?

Do criador da estrutura reativa Erik Meijer: - Especialista para especialista: Brian Beckman e Erik Meijer - Dentro da estrutura reativa .NET (RX)

Novo em folha: Introdução com extensões RX para .NET

Além dos links de Andreas Hoffmann (achei muito úteis quando eu estava aprendendo RX)

Aqui estão alguns vídeos de Bart de Smet (um cara muito inteligente que explica muito bem as coisas):

Meio que uma corrida do RX:
Rx - curando seus blues de programação assíncrona

Alguns entranhas sangrentas + alguma filosofia, esses vídeos são realmente esclarecedores:
Min linq - a essência de Linq
(O vídeo acima lida com como o LinQ meio que se relaciona com outras coisas, como o RX)

Observações sobre IqbServable - o duplo de iQueryable

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 através do básico da biblioteca, para que você possa construir e projetar o que aprendeu.

Há também uma versão JavaScript. Pesquise no Google por "Extensões reativas no laboratório".

eu gostei Introdução ao RX Parte 1 - Tipos de chave, e mostrou os principais recursos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top