UPDATE: You can find part 2 here , along with a link to download a C# quick start. A long time ago I realised that inevitably, however well specified the requirements or however tight the deadlines are, clients always throw a curve ball. To that avail...