One of my favorite features of Visual Studio 2005 is the work they’ve done in
the Custom Tools develop area. Custom Tools are those handy little VS
extensions that let you generate code in the IDE. The most infamous is the
DataSet generator.

MSDataSetGenerator is wired up in the IDE via the following registry
setting…
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Generators\{fae04ec1-301f-11d3-bf4b-00c04f79efbc}\MSDataSetGenerator

In short, what this does is wires up a COM registered assembly that
implements a certain number of interfaces expected by VS and that assembly does
that actual code generation. Like most things in VS extensibility, you’re free
to create your own. Doing this VS.NET 2003, was not nearly as friendly as it
could have been. In VS2005, the process is much more streamlined. There are
tons of sites and blog posts out there explaining how to do this, but what’s new
in VS2005 is the IDE automatically detects that you’re developing a Custom Tool
when you implement the aforementioned interfaces and automatically COM registers
the assemblies, and creates the necessary registry entries.
So… this

automatically gets the following register key created by the IDE – notice the
CLSID in that key matches the GUID that decorated on my custom-custom tool
class!

That earns huge props in my book. I plan to post a How-To guide on custom
tool development. If you’re reading this and that sounds of interest to you,
leave a comment - that will help bost my motivation.