As I’ve been preparing more things to talk about I realized that it would be beneficial to have a list of tools to refer back to in my posts.  So here you go--a list of tools I find essential to development in .NET.

The most important tool is Lutz Roeder’s .NET Reflector (http://www.aisto.com/roeder/dotnet/).  This powerful tool makes analyzing .NET assemblies easy.  If you aren’t using this already you need to start yesterday.

Some of the .NET sources have been released and as such you can now directly debug into .NET.  You do need VS 2008 (non-express) for this to work. http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx

The Shared Source Common Language Infrastructure (SSCLI) is your friend.  You can learn an awful lot about the internals of the CLR by looking at this shared source version. http://research.microsoft.com/sscli/

If you’re running up against a wall debugging in VS, WinDbg can come to your rescue.  The Debugging Tools for Windows install quickly and are extremely powerful. http://www.microsoft.com/whdc/devtools/debugging/default.mspx

SOS (Son of Strike) is a .NET debugging extension that is usable in both VS and WinDbg.  This comes with the Framework so you’re already good to go.   However, there is a cool extension to the extension available (SOSEX):  http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx

Process Explorer isn’t specifically .NET related, but it is an essential tool for figuring out what the heck has file/directory X open.  Use it to replace Task Manager and find happiness again.  http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

.NET Profiler lets you take a look at the pressure your application is putting on the managed heap.  It can be downloaded here: http://www.microsoft.com/downloads/details.aspx?FamilyID=a362781c-3870-43be-8926-862b40aa0cd0&DisplayLang=en  Details on usage can be found here: http://msdn2.microsoft.com/en-us/library/ms979205.aspx