TestDriven.NET
Test-driven
development is the practice of writing unit tests before you write
code, and then writing the code to make those tests pass. By writing
tests before you write code, you identify the exact behavior your code
should exhibit and, as a bonus, at the end you have 100 percent test
coverage, which makes extensive refactoring possible.
GhostDoc
XML
comments are invaluable tools when documenting your application. Using
XML comments, you can mark up your code and then, using a tool like
nDoc, you can generate help files or MSDN-like Web documentation based
on those comments. The only problem with XML documentation is the time
it takes to write it you often end up writing similar statements over
and over again. The goal of GhostDoc is to automate the tedious parts of
writing XML comments by looking at the name of your class or method, as
well as any parameters, and making an educated guess as to how the
documentation should appear based on recommended naming conventions.
This is not a replacement for writing thorough documentation of your
business rules and providing examples, but it will automate the mindless
part of your documentation generation.
Smart Paster
Strings
play a large role in most applications, whether they are comments being
used to describe the behavior of the system, messages being sent to the
user, or SQL statements that will be executed. One of the frustrating
parts of working with strings is that they never seem to paste correctly
into the IDE. When you are pasting comments, the strings might be too
long or not aligned correctly, leaving you to spend time inserting line
breaks, comment characters, and tabbing. When working with strings that
will actually be concatenated, you have to do even more work, usually
separating the parts of the string and inserting concatenation symbols
or using a string builder.
CodeKeep
Throughout
the process of software development, it is common to reuse small
snippets of code. Perhaps you reuse an example of how to get an enum
value from a string or a starting point on how to implement a certain
pattern in your language of choice.
PInvoke.NET
P/Invoke is the process used to access native Win32
API calls within the .NET Framework. One of the hard parts of using
P/Invoke is determining the method signature you need to use; this can
often be an exercise in trial and error. Sending incorrect data types or
values to an unmanaged API can often result in memory leaks or other
unexpected results.
VSWindowManager PowerToy
The
Visual Studio IDE includes a huge number of different Windows, all of
which are useful at different times. If you are like me, you have
different window layouts that you like to use at various points in your
dev work. When I am writing HTML, I like to hide the toolbox and the
task list window. When I am designing forms, I want to display the
toolbox and the task list. When I am writing code, I like to hide all
the windows except for the task list. Having to constantly open, close,
and move windows based on what I am doing can be both frustrating and
time consuming.
WSContractFirst
Visual
Studio makes creating Web services deceptively easy You simply create
an .asmx file, add some code, and you are ready to go. ASP.NET can then
create a Web Services Description Language (WSDL) file used to describe
behavior and message patterns for your Web service.
VSMouseBindings
Your
mouse probably has five buttons, so why are you only using three of
them? The VSMouseBindings power toy provides an easy to use interface
that lets you assign each of your mouse buttons to a Visual Studio
command.
CopySourceAsHTML
Code
is exponentially more readable when certain parts of that code are
differentiated from the rest by using a different color text. Reading
code in Visual Studio is generally much easier than trying to read code
in an editor like Notepad.
Cache Visualizer
Visual
Studio 2005 includes a new debugging feature called visualizers, which
can be used to create a human-readable view of data for use during the
debugging process. Visual Studio 2005 includes a number of debugger
visualizers by default, most notably the DataSet visualizer, which
provides a tabular interface to view and edit the data inside a DataSet.
While the default visualizers are very valuable, perhaps the best part
of this new interface is that it is completely extensible. With just a
little bit of work you can write your own visualizers to make debugging
that much easier.
Wrapping It Up
While this article has been dedicated to freely available add-ins, there are also a host of add-ins that can be purchased for a reasonable price. I encourage you to check out these other options, as in some cases they can add some tremendous functionality to the IDE. This article has been a quick tour of some of the best freely available add-ins for Visual Studio. Each of these add-ins may only do a small thing, but together they help to increase your productivity and enable you to write better code.