Wednesday, 18 February 2009

Do ASMX or WCF Proxy clients use IO completion ports?

I'm in the middle of performance testing a critical section of my project, when I notice a whole lot of extra threads being used to to perform WaitOrTimerCallback operations. 


On closer inspection I can see that these are being spawned by my ASMX client proxy class for operations on a remote server.

I was under the impression that these were using IO completion ports like all of my other asynchronous IO Calls.

Saturday, 14 February 2009

Concurrency and Coordination Runtime Learning Resources

I have recently been learning the in's and out's of the Concurrency and Coordination Runtime (CCR). Finding good learning resources for this relatively new technology has been quite difficult.

(A quick Google search brings up "Credence Clearwater Revival" as the top result!)

Some of the resources I have found:

Do you have any good learning resources for the CCR?

I really hope that Microsoft will publish more material, so far it has been too Robotics specific. I believe that MS needs to acknowledge that most people are using the CCR in isolation from the DSS and Robotics Studio.

I also published this list at StackOverflow

BizSpark - Getting a Helping hand from MS

I'm not sure if you are aware of this or not, but Microsoft has launched a new service/program called BizSpark.

BizSpark is basically a kind of sponsorship program offered to startup companies working with the MS Technology stack.  They offer free access to their MSDN Subscription service for up to 3 years while you meant their restrictions and stick to their TOS.

For our small company this has been a God send.  I can finally get access to the development tools I need to launch our service!

Thanks Microsoft for giving back to the community!

Monday, 2 February 2009

VB.10: Yield to the pressure and give us enumerators!

Unless you have been under a rock for sometime, you would have heard about the amazingly powerful CCR (Concurrent Coordination Runtime) from the robotics group in Microsoft.

In my case in particular, I could see the CCR making significant performance improvements to my current work project.  But there is a catch. (3.5 SP1) does not support the 'Yield' keyword that C# has had since 2.0.

CCR uses some nifty manipulation of the enumerator pattern to make asynchronous code appear to be sequential.  An essential part of this ability comes from the usage of the Yield keyword.  The C# compiler reads the enumerator class and converts it into a State machine.  Long story short - it is quite a clever approach. Team, please hear our cry.... Add the Yield command please!