This post originated from an RSS feed registered with .NET Buzz
by Sam Gentile.
Original Post: Some Tools I Use all the time
Feed Title: Sam Gentile's Blog
Feed URL: http://samgentile.com/blog/Rss.aspx
Feed Description: .NET and Software Development from an experienced perspective - .NET/CLR, Rotor, Interop, MC+/C++, COM+, ES, Mac OS X, Extreme Programming and More!
Inspired by Scott's most excellent list, where I picked up even more tools, I don't want to list all the tools in my c:\bin directory because that will take all day, but I want to emphaisize the tools I use every day in my work. Many of these will overlap Scott and other lists, as well as being obvious, but I thought it would still be useful to someone.
In my opinion, the best way to learn the .NET Framework and the CLI/CLR is to ditch VS.NET and program using a text editor and use the command line tools. VS.NET is an excellent tool but its levels of abstractions hide many things from you that you can later use after you learn the basics or not if you want to do advanced building (more on that soon). To this end, I use the excellent editor TextPad, which has many features for the power user and supports a slew of compilers. I also use it with Rotor, as I found Emacs to have just too much friction for me. I understand and support its power but it just takes too much effort to configure and thus is too much friction.
One must have tool is already there in your toolbox and many don't know it. ILDASM is your friend. Shipped with the free .NET Framework SDK and VS.NET, the IL Disassembler is a must use tool. I use it dozens of times a day. The ability to look into the metadata of .NET assemblies is a must in any serious .NET work, especially in Interop work to see what the default imports and exports have done or not done for you. Learn it, love it, live it,
To that end, I have been going on about Reflector for over a year now. Reflector is the very first thing I install after the framework. Reflectoris even better than ILDASM (although I still use both for different views of the metadata). Reflector is among other things, an object browser and decompiler. You can use it to look into undocumented assemblies and find out all sorts of things. Perhaps the most indispensible .NET tool on the planet!
Speaking of Rotor, I use Rotor as a daily tool. Rotor is not just a hacking platform for future .NET work. Rotor is the golden key to understanding how the CLI/CLR and the BCL work. Have a Fusion question on how Assembly.Load works? Look in the code! I keep a copy on all my work machines.
Scott mentioned the ActiveXplorer tool. For my money, the best ActiveX/COM browser on the planet, and the one I use every day, is nogoop's ActiveX/COM Inspector. This valuable tool lets you do all the standard stuff like see all your COM type data albeit in much nicer presentation, but stands ou in its ability to instantiate ActiveX controls by dragging them onto a design surface, as well as performing Event Tracing. Indidpensible and quite reasonable at a paltry $19.95.
Also in my daily toolbix, is nogoop's .NET Component Inspector which just rocks!! It lets you open a whole slew of .NET assemblies, do event tracing (without wriyng delegate code!!!), create objects or controls by simple drag and drop and execute its methods and properties, as well as other valuable things. You need this.
Along with my command line approach, as many know, I favor an XP or Agile process and believe 100% in Write the Unit Test First. Luckily, the friction for .NET is even lower than the other frameworks, so I use NUnit all day long, every day. Its so easy and simple with its use of attributes and reflection and friction reduced to virtually 0, that there is no excuse any more not to program this way. You think about the requirements and design more, you Do the Simplest Thing That Could Possibly Work, and you always have flexible, well tested code ameanable to Refactoring and high confidence.