Pregunta

EDITAR:Gracias por el enlace a la wiki, creo que, desde su ya comenzó allí, es más fácil ir allí para comprobarlo.Sin embargo, la cuestión aquí también es bueno, así que las personas que no están en torno a los foros de msdn llegar a conocer acerca de la wiki y de donde es.

Pregunta Corta:

¿Tiene usted una Muestra de Rx Código que podría ayudar a las personas a que se entienda mejor?

Largo de senderismo con la pregunta oculta:

Ahora que el Rx marco ha sido lanzado, creo que muchos de nosotros estamos interesados en la obtención de los bits y de ponerlas en práctica.Lamentablemente, realmente no hay muchos ejemplos por ahí (después de una búsqueda exhaustiva estoy casi convencido de Rx sólo tenía la intención de hacer fácil de Arrastrar en aplicaciones wpf).

No recuerdo exactamente donde fue que leí o escuché (he estado buscando en muchos blogs y vídeos) que el Rx equipo parece estar interesado en hacer el 101 de la serie...cuando con el tiempo suficiente para hacerlo...que bastante mierda para aquellos que quieren entender y jugar con él ahora (y me refiero a, ¿qué auto-respeto desarrollador no se siente como un niño con un juguete nuevo cuando una nueva tecnología.como esto viene de arriba).

Personalmente, he estado dando una oportunidad ahora, pero wow hay algunos locos conceptos en ella...sólo para tener los nombres de los métodos como Se materializan y Zip me hace pensar en Teletransportadores y cosas de Regreso al Futuro.

Entonces, yo creo que sería bueno que aquellos con una mayor comprensión, ayudó a construir una colección de ejemplos, ala 101 Ejemplos De Linq que va desde el uso básico hasta lo más complejo cosas, y cubrir casi todos los métodos y su uso, de una manera práctica (tal vez con un poco de teoría demasiado, especialmente dado que este tipo de conceptos, probablemente se lo requiere)

Creo que es genial que MS devs tome el tiempo para darnos material como eso, pero también creo que en esta comunidad es lo suficientemente bueno como para empezar a construir nuestro propio material, no?

¿Fue útil?

Solución

De hecho, me tenían pensamientos similares hace un par de días.Comenzamos nuestra propia "101 Rx Muestras" como un post en el Rx del foro MSDN, pero desde entonces hemos trasladado a un formato Wiki.Por favor, siéntase libre de venir y añadir tus propios samples!

101 Rx Muestras en la Rx wiki

Otros consejos

Para empezar - Aquí es una sencilla aplicación de dibujo, de modo que cuando el usuario arrastra, nos dibuje una línea roja a partir de la inicial del ratón la posición de abajo a la ubicación actual, y también una mancha azul en la ubicación actual.Este es el resultado de mi última semana del hack en Rx

A WPF Drawing Demo

Y aquí está el código fuente.

//A draw on drag method to perform the draw
void DrawOnDrag(Canvas e)
        {

            //Get the initial position and dragged points using LINQ to Events
            var mouseDragPoints = from md in e.GetMouseDown()
                                  let startpos=md.EventArgs.GetPosition(e)
                                  from mm in e.GetMouseMove().Until(e.GetMouseUp())
                                  select new
                                  {
                                      StartPos = startpos,
                                      CurrentPos = mm.EventArgs.GetPosition(e),
                                  };


            //Subscribe and draw a line from start position to current position
            mouseDragPoints.Subscribe
                (item =>
                {
                    e.Children.Add(new Line()
                    {
                        Stroke = Brushes.Red,
                        X1 = item.StartPos.X,
                        X2 = item.CurrentPos.X,
                        Y1 = item.StartPos.Y,
                        Y2 = item.CurrentPos.Y
                    });

                    var ellipse = new Ellipse()
                    {
                        Stroke = Brushes.Blue,
                        StrokeThickness = 10,
                        Fill = Brushes.Blue
                    };
                    Canvas.SetLeft(ellipse, item.CurrentPos.X);
                    Canvas.SetTop(ellipse, item.CurrentPos.Y);
                    e.Children.Add(ellipse);
                }
                );
        }

Leer mi post con la explicación más detallada aquí y Descargar el código fuente aquí

Espero que esto ayude

Otro recurso útil puede ser el Reactivo Extensiones (Rx) Koans: 55 progresiva ejemplos para ayudarle a aprender Rx

Estoy leyendo http://www.introtorx.com, que como el nombre lo sugiere parece ser una concisa introducción.No parecen ser bastante (muy básico) ejemplos, paso a paso, sobre todo el uso de la consola para la impresión de las cosas.

Aquí está mi variación en el drag & drop de la muestra por Wes Dyer, para Windows Forms (me gustaría hacer EnableDragging un método de extensión, probablemente):

    public Form2()
    {
        InitializeComponent();

        EnableDragging(pictureBox1);
        EnableDragging(button1);
        EnableDragging(this);
    }

    private void EnableDragging(Control c)
    {
        // Long way, but strongly typed.
        var downs = from down in Observable.FromEvent<MouseEventHandler, MouseEventArgs>(
                        eh => new MouseEventHandler(eh), 
                        eh => c.MouseDown += eh,  
                        eh => c.MouseDown -= eh)
                    select new { down.EventArgs.X, down.EventArgs.Y };

        // Short way.
        var moves = from move in Observable.FromEvent<MouseEventArgs>(c, "MouseMove")
                    select new { move.EventArgs.X, move.EventArgs.Y };

        var ups = Observable.FromEvent<MouseEventArgs>(c, "MouseUp");

        var drags = from down in downs
                    from move in moves.TakeUntil(ups)
                    select new Point { X = move.X - down.X, Y = move.Y - down.Y };

        drags.Subscribe(drag => c.SetBounds(c.Location.X + drag.X, c.Location.Y + drag.Y, 0, 0, BoundsSpecified.Location));
    }  

Un poco tarde, pero si alguien nuevo se topa con esta pregunta, http://rxmarbles.com/ proporciona una forma muy agradable de visualizar los operadores.

Y un Stock Visor ejemplo en Github enter image description here

  1. StreamProvider extrae datos de un servidor y genera un Rx.NET IObservable corriente.
  2. StreamAggregator agregados de todos los IObservable arroyos y duplica el resultado en un sistema central de procesamiento de hilo.
  3. Las Vistas de filtro, el único flujo y duplicar el resultado en sus propios hilos para mostrar.

Todos StreamProviders, StreamAggregate, y Vistas ejecutar en sus propios hilos.Este es también un típico modelo de subprocesamiento en el mundo real el stock de las aplicaciones de visualización.

Este ejemplo también puede ser una simple prueba de rendimiento de esqueleto para WPF DataGrid.Calcula las garrapatas/segundo procesa y la muestra en la Vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top