Pumping Up the IDE

Get more work out of Visual Studio .NET—and less of a workout—with these IDEs.

"I am Hans and he is Frans. And we want to PUMP YOU UP!"
—Saturday Night Live

This month, I'm going to focus on Visual Studio .NET; my apologies to those of you using other development environments, but VS .NET is clearly the product used by the majority of my readers. Visual Studio .NET was designed from the start to be extensible, and many utility vendors have taken advantage of this extensibility. Here's a look at a selection of ways to make your time writing code with Visual Studio .NET more productive (or more fun) and to improve the quality of the code that you write in this environment.

Free Stuff!
Everybody likes a bargain, so let me start with a few freebies.

First up is Project Line Counter (http://www.wndtabs.com/plc/), which works with Visual Studio 5.0 and 6.0 as well as Visual Studio .NET. As you can guess from the name, it exists to count lines of code in your project. Most of us know by now that LOC is a fairly fuzzy metric; different developers can use vastly different LOC to accomplish the same aims. But if you're just trying to get a sense of the overall size of your projects or trying to compare one with another, PLC will give you the numbers. Everything is broken down by module, and you get separate counts of comments and blank lines.

Then there's CodeSmith (http://www.ericjsmith.net/codesmith/). CodeSmith has a standalone interface as well as an add-in chunk, but it's so spiffy that I'm going to plug it here anyhow. CodeSmith is a flexible code-generation tool that uses an ASP.NET-like language to define templates. You can then fill in properties for those templates and have it generate any sort of text file. The add-in version allows you to add an XML file containing properties to your Visual Studio .NET projects, and then output the generated file at build time. Among other things, this gives you a way to simulate generics before .NET 1.2 ships. The major drawback to CodeSmith is that the documentation is a bit skimpy, but there's an active support forum to make up for that.

Developer Central Newsletter
Want to read more of Mike's work? Sign up for the monthly Developer Central e-newsletter, including product reviews, links to web content, and more, at http://lists.101com.com/nl/main.asp?NL=adt.

A Maze of Twisty Little Passages
Depending on how good your memory is, it can be tough to find things in a sizeable project. Sure, Visual Studio .NET has its own searching tools, but searching through every file in a project is tough to do. Fortunately, there are some add-on products to make it easier to move around in you .NET projects.

Start with QuickJump .NET (http://www.codeproject.com/dotnet/quickjump_net.asp). With this little tool involved, you can click Alt+G and get a window showing all of the members in the current class. Type a few letters to filter the list, and you can jump right to the applicable declaration. This is another freebie, so though it doesn't do a whole lot, it won't cost you a whole lot either.

For navigating through your entire project, you'll want to turn to commercial add-ins. If you're working in C++, take a look at Browsio (http://www.browsio.com). Browsio adds a browse database to your project, and a single keystroke will open up a window into this database. From there, you can see the definition of and references to every identifier in the program, as well as base classes and subclasses. Of course, you can click in the list to go to any reference. Browsio costs $55, with substantial volume discounts.

For navigating VB.NET and C# projects, take a look at Total .NET XRef from FMS (http://www.fmsinc.com/dotnet/xref/index.asp). At $199, this tool keeps track of the structure of your projects. Place your cursor in any identifier, hit the XRef button, and you'll get a window listing every place that identifier is used. You can see files, classes, lines, members, and even a preview of the usage. A single click takes you to the definition of the object, or you can double-click to see any usage line. Besides making it easy to navigate to everywhere that a member is used, Total .NET XRef is a good tool for quick-and-dirty impact analysis.

But is it Good Code?
Speaking of FMS, check out Total .NET Analyzer (http://www.fmsinc.com/dotnet/Analyzer). This $499 add-in leverages the same parser as Total .NET XRef to look over your code and warn you about deviations from best practices and likely errors. These range from using string concatenation where a StringBuilder would be a better choice to unused code to performance issues, to violations of generally accepted naming standards. All of the recommendations show up in a dockable window, and you can click on any of them to go right to the line of code that the tool doesn't like. You can also customize the rules list to a certain extent, though there's no way to add your own rules to the product.

Sometimes it helps to have another set of eyes checking over your code. That's where Macadamian's $39 CodeReview (http://www.macadamian.com/products/codereview/) comes in. CodeReview adds a toolbar to let you manage the entire code review process without ever leaving Visual Studio .NET. You can send out a chunk of code for review, add comments and suggestions to code under review, and accept or reject suggestions with a single click. If your entire team uses this add-in you get the benefit of many eyes without needing a separate code review process.

A New Editor, Please
Visual Studio .NET add-ins can have much more radical effects than just adding a new toolbar or window. For example, they can completely replace the built-in editors. My next two products do just that.

CodeWright for Visual Studio .NET (http://www.codewright.com/cwnet/default.asp) merges the CodeWright programmer's editor directly into the Visual Studio .NET IDE. This lets you use CodeWright's keystrokes and color syntax (among other features) in your .NET source files, as well as making all of CodeWright's other high-end features (like the CodeMeeting chat window, which lets you edit documents collaboratively) available within the .NET interface. Especially if you're already a CodeWright user, spending the $149 for this product will likely boost your productivity in VS.NET substantially.

For XML files, you can get a similar plethora of tools by spending $999 for XMLSPY Enterprise Edition and then downloading the free package to integrate it with .NET. No more will you have the basic Microsoft XML-editing user interface for XML files in your .NET solution. Instead, XMLSPY's multiple views, debugging capabilities, and flexible interface will take over XML-editing duties. Given the cost, this probably only makes sense if editing XML is a frequent task for you, but if it is this is a great way to merge two best-of-breed tools.

The Big Boys
Some add-ins are so all-encompassing that it almost seems silly to refer to them as add-ins. In this category I'd put Rational XDE and Compuware DevPartner Studio.

Rational XDE (more formally, IBM Rational XDE Developer .NET Edition v2003.06) adds UML modeling and forward and reverse engineering to Visual Studio .NET. It lets you maintain a repository of software patterns, integrate design documentation on all levels with your projects, and generally architect the largest of .NET projects. You'll find lots of new windows and objects if you add XDE to your tool set, and even your workflow is likely to change. With one year of support, this will set you back just over $3,500.

While XDE is directed at the architect, DevPartner Studio is aimed squarely at the developer. For $1,495 it adds a number of high-end debugging and tuning capabilities to Visual Studio .NET, including rules-driven code review, runtime error detection, code coverage, memory, and performance analysis. DevPartner Studio excels at tracking lots of information and then presenting it in a sensible way to allow quickly focusing in on the bits that you need to optimize your application.

Is That All There Is?
Heck, no. This list is illustrative, not exhaustive. There are dozens of other Visual Studio .NET add-ins that I could have mentioned (I've covered a number of them in my Developer Central newsletter, and undoubtedly will review more in the future). For the definitive list of Visual Studio .NET add-ins (and other .NET utilities), visit the SharpToolbox site at http://sharptoolbox.madgeek.com/, which is approaching 350 listed tools as I write this.

Finally, if you can't find the add-in that you want, you can write it! Though in the past Microsoft has kept some of the programming interfaces of their development products a secret, licensed only to partners who pay for the privilege, that's no longer the case. If you visit the Visual Studio Industry Partner Program site at http://www.vsipdev.com/, you'll discover that you can download the SDK for free. That means that you, too, can build a VS .NET add-in...and perhaps have it mentioned in a future Developer Central. Happy coding!

Like having everything in the IDE? Or do you think this is a dangerous trend that needs to be stamped out? You can get hold of me at [email protected]. I'll use the most interesting comments in a future issue of Developer Central.

comments powered by Disqus
Most   Popular