Geeks With Blogs
ArchitectNow Kevin Grossnicklaus' Blog

Recently I loaded up the 3.0 version of ReSharper and am very impressed.  It made me realize how much I miss using that tool (since it's been years since I actually had a copy).  They've came a long way since then and built a very nice suite of development productivity tools.  So I had to give them some props on the blog (even though I represent no tool vendors at all I like sharing info on what I like as much as dissing the tools I don't)

While teaching my .NET classes I mention tools like this every now and then and realize most .NET developers (especially newer ones) are not aware that tools like this exist.  They are familiar with the idea that they could go purchase new grid controls or toolbars to use WITHIN their application but haven't spent too much time (if any) with tools that integrate with Visual Studio and are nothing more than coding productivity tools (or code analysis tools or other debugging/diagnostic type tools).  Most people don't see the tangible value of something like this (assuming their is one) and/or cannot justify any potential cost for purchasing something like this.  In some scenarios that may be justified but, even though I have no hard numbers to back it up, I would bet that a number of the tools listed below actually pay for themselves very quickly in terms of man hours spent on remedial coding tasks.

So What Do I Use?

Don't get me wrong, I'm not an expert in ALL tools of this type and I'm sure there are many great ones even I am not familiar with, BUT I have used a few that have served me and my teams very well.  Some integrate w/ VS.NET and are plug-ins others are just tools we use outside of VS.NET.  I'm not associated with any of these venders and am just posting this here as my own humble opinions from my own humble experience.  So, if you want to know what I use here goes:

GhostDoc (http://www.roland-weigelt.de/ghostdoc/)

This is a FREE tool (my favorite price) that simplifies adding comments to your methods, properties, classes, etc.  It generates default XML based comments (including text that it infers from the method names, parameters, etc).  It's a very nice tool and focuses on C#.  They are just now releasing their first VB.NET support but I've thus far only played with the C# version.  It's trivial to use:  You load it, run visual studio, open your project, right click on your method and select the newly added "Document This" menu item which now appears.  Done.  Everyone on my team uses this tool and, on our teams, committing code to our source code repository without ALL public members or classes having XML comments is a build breaking no-no.

ReSharper (http://www.jetbrains.com/resharper/)

This is NOT a free tool :)  But it's well worth the $200 individual license cost.  I could go on forever about all the individual features this thing adds into VIsual Studio.NET once loaded but it would take the next few weeks of blog postings.  From refactoring tools, to code analaysis, to stupid simple (but handy) things like automatically reformatting your code and removing unnecessary "using" declarations or "this." prefixes (in C#).  Check out the link above for the full list of features. I highly encourage you to check out their site, download a 30-day demo of ReSharper, and code for an hour on something you've been working on.  You'll notice this tool....I promise!

Reflector and/or Resourcer (http://www.aisto.com/roeder/dotnet/)

If you are not familiar with Lutz Roeder's tools, please check them out.  Reflector is one of the most famous .NET dis-assemblers (or more accurately an assembly analyzer) and Resourcer is a handy little binary .Resource file editor.   We use both frequently.  My teams focus on big .NET smart client applications with a lot of localization requirements.  We also still use binary resource files and the Resourcer tool has been very handy.  It has it's quirks and I'm still on the fence about writing my own, but, until I find the time to do that, we all use Resourcer.   Reflector is something I encourage all the students in my .NET Assemblies class to download on the first day of class and I use it to teach them about how .NET and the assembly infrastructure works.  It's well worth playing with.

Compuware's DevPartner (http://www.compuware.com/products/devpartner/studio.htm)

This is the most complex tool I own and the one I am the most proud of.  It's also the most expensive (and we tend to be the most proud of the things we spent the most on right?)  The DevPartner suite has been around for many years and their .NET tools are fantastic.  It's essentially a suite of tools integrated tightly into VS.NET for code coverage, profiling, memory analysis, code analysis, etc, etc.  I can run any .NET application using their memory analysis tools and get a HUGE amount of information displayed regarding the .NET memory usage, garbage collection, memory leaks, etc.  Check out this screenshot for an example of what a memory analysis looks like when running their tool in VS.NET.  Here is another screenshot of what a performance analysis looks like.  It times your code down to the individual line and let's you navigate through the results very quickly to identify bottlenecks and areas for improvement.  This, like ReSharper, is a VERY nice tool but also VERY ADVANCED!  This tool can get a bit overwhelming but I HIGHLY recommend it, especially for those of you working as leads or architects and troubleshooting complex code.  Personally I think everyone on a team would benefit from it but it's cost is a bit prohibitive.  ComponentSource.com currently has a single user license running at $2,200 which makes it something you need to budget for and justify.  I've became very adept at using it (after many years) and have always justified having a copy by taking advantage of it everywhere.  Could I do that for everyone on my team?  Probably not.  I wish it was cheaper and more readily available but they don't let me price these things.  I will say this tool has taught me quite a bit about how .NET works simply by letting me look under the hood (moreso than a $2,200 class would have :)

Conclusion

Well, only 3 or 4 tools but I still get some use out of them.  If I run across anything else in the future I'll be sure to throw up some info if I think it might be of help.  If any of you have used tools like this that I should check out drop me a line or comment on this post for all to see.  I'm up for looking at anything.

Also, as of tomorrow I'm hitting the road for a few weeks to leave .NET behind and get some fresh air.  I'm taking the family up to Montana for some long needed R&R.  So, if you write me and wonder why you get no response, don't worry...I'll be standing with a stick in a river (the famouse Henyr's Fork) outside of Last Chance, Idaho throwing fake flies at huge trout...and .NET productivity tools will be far from my mind :)  When I get back I'll slowly get caught up and probably share some stories of remote mountain streams and/or bears.

Until then, have fun!

-Kevin

ps.  Has anyone here dug Wall Drug?

 

 

 

Posted on Wednesday, June 27, 2007 8:46 AM | Back to top


Comments on this post: Visual Studio.NET Productivity Tools

# re: Visual Studio.NET Productivity Tools
Requesting Gravatar...
Now if you had just actually USED GhostDoc - THAT would have saved ME hours of work! hehehe

When you don't pay for it, there isn't the pressure to use it eh?
Left by Your coworker on Jul 06, 2007 4:00 PM

Your comment:
 (will show your gravatar)


Copyright © Kevin Grossnicklaus | Powered by: GeeksWithBlogs.net