Refactoring has, over the last few years, gone from a moderately obscure development
technique to a mainstay. These days, you can even find a few refactorings built
into Visual Studio 2005. But there's still plenty of room for ISVs to improve the
Visual Studio refactoring story, and CodeIt.Once is one of the latest entrants in
this field. It offers a selection of 14 refactorings that work in both VB.NET and
C#, and in both Visual Studio .NET 2003 and Visual Studio 2005:
- Rename
- Extract Method
- Encapsulate Field
- Extract Interface
- Promote Local Variable to Parameter
- Add Parameter
- Remove Parameters
- Reorder Parameters
- Method To Property
- Property To Method
- Introduce Constant
- Inline Variable
- Decompose Conditional
- Move Class
These are all hooked into the user interface though the main menus, the shortcut
menus in the code editor, and as appropriate in other spots - for example, you can
get to Reorder Parameters from the Object Browser shortcut menu when you have a
method selected. One nice thing about CodeIt.Once compared to other refactoring
products that I've tried is that the learning curve is very gentle. Every refactoring
uses a wizard mode by default, where a step-by-step dialog box walks you through
what the refactoring does and helps you make the appropriate choices along the way.
For example, the Extract Method wizard offers advice on choosing good method names
and reminds you to use Pascal casing on the name, and then provides a user interface
to let you name and order parameters. When you're a little more comfortable, you
can suppress the introductory screens on the wizards. As a final step, you can opt
to dispense with the wizards entirely (on a refactoring by refactoring basis) and
operate in expert mode, where invoking a refactoring opens a dialog box that prompts
you for just the necessary information.
The refactorings themselves are pretty straightforward, and worked easily and quickly
in my tests. The product maintains its own undo stack, so that even though a single
refactoring may introduce a boatload of changes, you can always get back to where
you were a minute ago. You can download a 30-day evaluation version if you'd like
to see it in action yourself.