Herman Venter has just released his Common Compiler Infrastructure as an OpenSource project on Codeplex. CCI is a GREAT set of libraries for building, analyzing, and modifying .NET assemblies and PDB files – written entirely in C#. Several Microsoft projects have been using it internally for years. Most notably, it’s the engine behind FxCop. If you’ve written your own custom rule for FxCop, you’ve used an earlier genreation of CCI. I’m thrilled that the latest CCI is finally public in full source form. This makes it easy to write all sorts of cool .NET tools.
I’ve been playing with custom FxCop rules for awhile. I’m getting close to releasing an FxCop rule that warns about invalid format strings (rather than waiting until runtime to get an annoying FormatException), and I’ve got a half-finished prototype of adding C++-style ‘const’ to C# (not that I think it’s the best solution for adding immutability – just that it’s a model lots of C# developers are already familiar with, and so a good one to experiment with). Now that the full CCI is out there, my mind is racing with all the cool tools I could release. I can’t wait too see what else the community uses CCI for!