01 March 2005

vs.net developer's toolbox

I used to love playing PC RPG game such like The Magic Sword & The Chivalrous Youngsters. Player impersonates a Kongfu master and experiences the life of JiangHu(lives of the 'gang ring' and dark society). Typically you start with a junior level and knowing very little about martial art weapon and armour art master. Then you start learning from other masters and pick up some ‘Kongfu Sutra’ and practicing yourself. You will be on assignments, such like escort a convoy through treacherous terrain or to steal a treasure chest from the royal palace etc. In these assignments you will found lots o gem or little secret chest. Pick it up, and some are powerful weapons that require practicing. Some are secret potions that will grant you transit magic power. Inevitably by the time the game ends, you are a grown Kongfu master.

Similarly, there are VS.Net add-ins tools to the IDE that help us more to be more productive and write better code. I think part of the fun of it is to find the add-ins, install it, evaluate the usefulness, assigned the keyboard shortcuts and being familiar on using them without mouse click. In pair programming, it is just amused to play the trick and see the look on your peer’s face: ‘how do you do that?’ (VS.net 2005 has incorporate many of these add-in features such like TestDriven.net or code refactoring :-) ).

Order in weight of importance, I feel these tools are must have (some of them are not really VS.NET addins but just powerful tools):


  • Google tool bar, save you many clicks and key stokes to go to it’s home page.


  • nUnit + TestDriven.Net
  • (an very cool nUnit addin to VS.NET that enables inline unit test and debugging without leaving the IDE.

  • ReSharper.
  • Code refactoring and code reformat are the two I used most.

    Sometimes object browser is just not enough. A spycam would be useful:
  • Lutz Roeder's .Net Reflector + Reflector Addins.
  • The one I use most is the Reflector.VisualStudio

  • In a team enviroment CruiseControl.net is the most important tool for code shared check-out and continuous integration(CI).
  • It reads an nAnt script and do whatever commandline tasks it is told. Monitoring code repository, build solution with VS.net (devenv), run all unit test etc. There are also a system tray client appicon (CCtray) sends notifications on build state.

  • nCover should also be considered as part of the nAnt task in your continuous integration(CI)
  • In the dev environment I am working, we have an uber code integration build server and many team and projects are contributing to the same code repository. Our team was quite proud to bring the 'green bar' from 11% to 53%. Alan Dean compares the usefulness of nCover and CoverageEye.net in commandline mode. I haven't tried the CoverageEye.net for the CI.

  • ieHTTPHeader
  • an explorer bar for Internet Explorer that will show you the HTTP Headers IE are sending and receiving. Quite useful at ASP.NET web app debugging.

  • Chris Sells' RegexDesigner.NET A very inspiring regex composer, helps a lot on learning reguar expression.


  • nDoc Your PA for documentation, taking awful longtime to run but works well.
  • The good news is you don't have to run it until next release.

  • Albeit the not very smart name FxCop
  • does help the development team on code review. Sometimes I find it is quite daunting to click the analysis button particularly newbies on .NET. We started with runing it as part of continous integration, then disabling a few rules and endup with running it for code review only.

    Last but not least the
  • Araxis Merge Tool. Similar to windiff just 100 times better. ASCII, binary and recursive comparison on file system. You can specify multiple regex to by-pass trivial things like comment. Last time we use it for code migration on 100+ java packages with more than 800 classes, which coupling with live binaries version identification. It helped a lot.

I may have missed some but these are the most important tools to me. Once get them running, the next step it to hook them into VS.NET using Add-manager. Then assign keyboard mappings and be familiar with them.

It won't be long before you call mouse as the WMD (Weapon of Mass Distraction)

No comments: