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
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.
| 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,
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
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
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 MikeG1@larkfarm.com.
I'll use the most interesting comments in a future issue of Developer