I'm Charles Cook. This is my personal website where I discuss mainly software related issues and personal software projects. I work for Microsoft in the Exchange Unified Messaging team in Redmond.
I'm a software developer with more than twenty years experience. I've worked in various roles over the years — architect, team leader, and senior developer — in different types of company, from a two man startup to a large multi-national corporation. I've worked on a number of products: language translation management, a unified communications messaging platform, document management, office automation, UI prototyping, planned maintenance, and computer-aided medical diagnosis.
I've been working in the .NET environment for over 10 years using C# using technologies such as Silverlight, WFC, SQL, Entity Framework, WinForms, and ASP.NET.
Before that I coded extensively in C++ and C, with lots of experience using COM/DCOM.
I created the XML-RPC.NET open source project in 2001 and have been maintaining it ever since. It is used in a large number of commercial and open source applications world-wide.
I maintain some other open source code on GitHub, for example NOptFunc, a command line parser for C# which uses reflection to generate a specification of command line positional and option arguments using the optional parameters feature of C# 4.0.
I've been writing on this blog since April 2001. I write about topics that interest me and those which I want to learn more about.
I'm married to Qian, who is also a .NET developer. She is currently working on a knowledge management product.
This blog is powered by my own custom blogging engine implemented with ASP.NET MVC3, SQL Compact 4.0, Simple.Data, and Markdown. Posts are generated dynamically and cached on the server.