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!

Saturday, 31 January 2009

Patent Trolls

There are all sorts of people on the planet, some are better than others.  Others are Patent Trolls!troll

What is with these intellectual armed robbers?

Do they really just register any sort of fancy idea, of which they have no intention of actually making anything with.  And simply wait until some poor company (Poor? no actually they hope for rich ones!) to independently come up with the same idea.  AND Actually do something with it.

Simply wait around 5-6 years until other unsuspecting parties are also using 'Your' idea.  and then SUE SUE SUE!

Seriously, your idea?

But do you hate the player? or hate the Game?

I think the patent office needs to review how easily they are giving away the rights to 'idea' that basically are just common sense.

A plea to the companies being unjustly sued: Please fight! Don't settle out of court!  That is what is keeping this cycle turning!

Getting WHS to work!

I don't know about you, but getting computers to connect to WHS (Windows Home Server) can be quite tricky.  In fact it has almost always been that my laptop (Running Vista Ultimate) would connect easily, but my wife's computer (Running XP) just would not play nice.

In the recent reinstallation (which took 3 attempts to get right!) I decided that enough was enough. I WAS GOING TO CONNECT ALL PCs!

It turns out that it was actually easy.  First thing, straight after installing WHS on the Server, Connect all of your PCs.  Don't let the server upgrade anything! (Well at least make sure you have the critical device drivers)

I understand that WHS is meant to be just that, a file storage/backup server.  But it is too hard for a developer to resist using the underlining windows server 2003.

So if you are having problems connecting your PCs, and, if like me, you had tried everything under the sun to connect another computer to WHS.  Try a reinstallation  (I recommend the New Installation) followed by quick connections of all of your PCs


Friday, 30 January 2009

Installing WCF on IIS6

I have finally reinstalled WHS (Windows Home Server), now the tricky bits: Getting WCF and MVC working correctly.

Getting WCF Working

  1. Install the latest .Net framework (3.5 SP1 in this case)
  2. Launch a Command Prompt with full privileges

Right click on the command prompt short cut in the start menustartmenu-1


Uncheck 'Run this program with restricted access'dialogue

  1. Go to 'C:\Windows\Microsoft.NET\Framework\v2.0.50727'
  2. Run aspnet_regiis -i
  3. Add a new web-site in IIS, check to see if the .svc extension is now available

iis-1 dialogue-2

  1. The .svc extension is now appearing, if your WCF service is in a web-site that already exists (Default web-site etc) then just copy and paste the .svc information into the properties of your website.  Otherwise when you create your new site it should be working.

Wednesday, 28 January 2009

Re-Installing WHS now

Well I've backed up my databases and other shared folders onto another hard drive and turned the server off. 

This is a good time to get your vacuum cleaner out and give the box a good going over.  Especially the inside cooling fans and heat sinks.

This box seems to be more dusty than I would have expected.  And it is quite hot to touch.  I might have to rethink the server location.

Ok, Choosing a New Installation. I can now confirm that the installation WILL format all attached hard drives!  This is important to note as had I not disconnected the backup hard drive it would have been up for formatting.

Estimated time for installation: 50 minutes.

Re installing Windows Home Server

Ok, time to start the reinstallation of WHS (Windows Home Server) process.

From last time, I believe that Windows Home Server is particularly greedy.  Any (and by that I mean ALL) hard drives attached to the computer will be claimed by WHS.  It will potentially format all of the data.

[I will confirm this is the case when I get to this step.]

I believe there is an option to reinstall or new installation.  I plan to go with a new installation as I have previously hacked windows settings.  So in order to do this I need to back up onto a hard drive which I need to disconnect during installation.


To do this you need to remove a hard drive from the current pool used by WHS.  And it is not kidding when it says it can take hours!

This is a worry as this installation of WHS is restarting every hour! (due to expired trial licence)

Tuesday, 27 January 2009

Ordering Windows Home Server

Well my trial version of Windows Home Server is due to expire in 20 days.  I have order a OEM Copy for my home server which should arrive in a couple of days.

Funny thing, I showed my total ignorance the other day and ordered what I thought was a really cheap OEM copy of Windows Server 2008.  Only to find out it was just a sticker! (5 User licence)

Yeah, live and learn (We hope)

Anyway.  I will upload a blog about the upgrade process.  I have yet to decide if I will do a full reinstall or try and preserve the current installation.  At the moment it refuses to allow new computers to be connected (Connection/Backup service etc) which is a minor problem.

I brought the software from I recommend these guys for cheap prices and excellent sales support.

Still alive

Quick blog to let you know I'm still alive.  :)

Was surprised today when I noticed that this blog actually gets some traffic! (well not much averaging 10 visitors a day).  This has given me some motivation to write more in the near future.