MZ-Tools 6.0

In case you don’t know about MZ-Tools, it is easily the best Visual Studio .NET add-in available. This started in 2000 as an add-in for the Visual Basic 6 IDE, which is where I was first introduced to it. Since then, I have followed it’s evolution into a Visual Studio .NET add-in for all four VS.NET releases.

MZ-Tools has just released version 6, which provides support for all of the VS.NET releases, including Visual Studio 2008, into a single add-in. There were a few minor bug fixes and enhancements in this version, but the biggest change is the consolidated support for the different IDE versions.

This add-in does so much it’s almost hard to list all of the features, but it’s single goal is “To make your everyday programming life easier.” Out of all of the add-ins that say they increase your productivity, this one definitely sits in the top 5.

Since there are so many features available, I’m only going to mention the ones that I use on a regular basis.

Find Code Faster

MZ-Tools features an advanced find feature that shows the results in a hierarchical tree inside a dockable window.

You can find strings in a procedure, file, project, solution, selected text, a group of files or a group of projects.

The results window provides multiple tabs to store your previous searches and allows you to refresh the results, copy them to the clipboard, or export to a file. You can also remove results from the list.

You can also replace the occurrences found one at a time or all at the same time.

Code Templates with Variables and Keyword Expansion

Code templates with variables and keyword expansion allows you to define code snippets that you use frequently. To go along with the ability to insert code templates, you can also define standard file, class, and procedure headers (also with variables) as well as an easy method of adding exception handling code. These features go a long way to ensuring that your code stays consistent.

Sorting Code Elements

Another feature that I use all of the time is the ability to sort code elements. There is a predefined sorting sequence that you can customize if you want, but this allows you to rearrange code elements, sorting by name, scope, or kind, or manually. I usually apply the predefined sorting and then adjust as needed.

Design Forms Faster

There are features here that allow you to define and apply default properties to a control when it is added to a form, set the TabIndex of all of the controls on a form with a single mouse click. You can also copy and past controls along with the related event handler code from one form to another.

There is also an enhanced version of the Document explorer, called the Control Explorer, which shows you the the hierarchy of controls of the active form window. The Control Explorer allows multi-selection and lets you perform actions on the selected controls, like Bring to Front, Send to Back, Cut, Copy, Copy with Code, Paste, Paste with Code, Delete and Apply Default Properties

You can also define the most frequently used properties to show in a property grid.


Some of these also fall into the category of writing code faster, such as the standard headers, but you can also generate HTML or XML documentation. This documentation is different than the XML documentation you get from the XML comments and a tool like NDoc or Sandcastle.

You can also perform various code reviews, such as mandatory or forbidden text, dead code, tab index, access keys, and control default properties.

There are enhancements for the way you work with Visual Studio as well. This includes the ability to collapse the projects in the Solution Explorer, define favorite solutions, open the folder where a solution, project, or document is saved, and copy the selected files in the Solution Explorer to a folder.

You can also review statistics about your code. This includes the number of code lines, comments lines, blank lines (both the total line count and percentage). You can get these statistics at the solution, project, and code file level. You can also export them to a tab delimited text file or copy them to the clipboard.