Welcome to Channel 9. I would love to see more content with Erik Meijer and Brian Beckman. I love all Channel 9 content but these two guys are the best!! Thanks.
So I'm sure Anders considered having the default for async calls be await without having to type the await keyword allowing for a smaller more concise format. I know this would not work for backwards compatibility but it could be turned on with a project setting or something of the sort. Then there would be a new keyword to use if you don't want to await. I have spent only 2 second thinking of this so I'm sure there are all sorts of reason why this is a bad idea that I have not thought of yet but could so you speak on some of the decisions around the await keyword. Thanks.
I really enjoyed this talk especially the part when discussing the differences in native and managed lambdas. I do mostly managed development but I also do a lot of native and mixed mode (C++\CLI) development as well so I've had to become accustom to both styles. Also are the latest C++0x lambda standards slightly different than the VSC++ version now? I am a big fan of the managed syntax as it is very beautiful and I love it. But after using the C++ lambdas, I am left wanting some way to override the default capture behavior in C#. I would rarely use such a feature but it would be nice. Thanks so much for the great video!!
@philjay: I hope they use IObservable also. That will be the best!!
Also I heard Scott mention AMQP
Please talk more about that. That is very interesting.
Any chance on also supporting XMPP (AMQP I like much better, just curious here)
Hey this was great. What would this look like in F#? Thanks.
I would love to see some information about boost
I notied there is a bug when releasing the mouse button from outside of the window. Here is a fix that will merge mouseUp and mouseLeave to accomplish the task. What is normal UI guidance for drag and drop when going outside the window? Thanks.
var mouseLeave = from evt in Observable.FromEventPattern<MouseEventHandler, MouseEventArgs>(h => MouseLeave += h, h => MouseLeave -= h) select evt.EventArgs.GetPosition(this); var query = from start in mouseDown join move in mouseMove.Buffer(2) on mouseUp.Merge(mouseLeave) equals Observable.Empty<Unit>() select Subtract(move.Last(), move.First());
Alright here is a working query comprehension version
var query = from start in mouseDown join move in mouseMove on mouseUp equals Observable.Empty<Unit>() into moveGroup let drag = moveGroup.Zip(moveGroup.Skip(1), (prev, curr) => Subtract(curr, prev)) from delta in drag select delta;
Still curious if this could be cleaner. Thanks.
Here is what I came up with
var query = Observable.Join( mouseDown, mouseMove, _ => mouseUp, _ => Observable.Empty<Unit>(), (_, r) => r) .Publish(evt => evt.Zip(evt.Skip(1), (previous, current) => Subtract(current, previous)));
I am having difficulty translating this into query comprehension syntax. Anyone figure that out? Thanks.