SearchVB.com has devoted a few words to refactoring of late. At the risk of overdoing it, we offer you a few more words on how refactoring is playing out these days in the Visual Basic arena. This shows how the development community, including vendors, can rise to the occasion when Microsoft decides to leave out a tool in the jam-packed Visual Studio toolset.
A funny thing happened to Visual Studio 2005 on its way to market: A few items on developers' wish lists for the product got left out. One function that failed to make the final cut was refactoring. That omission has created an opening for third-party software makers in the Microsoft space.
Entries in the VB refactoring space include Refactor! from Developer Express Inc., NET Refactor from Know DOT.NET, and ReSharper from JetBrains. These three tools, in effect, use software to better enable the migration of well-formatted code from one software version to another. That is a nutshell view of refactoring. The tools need not migrate code from one language to another -- instead they may simply improve the maintainability of code in applications that are being redone in the same language. But language migration is often the intent, as developers re-do VB6 apps in .NET.
Although refactoring is a new concept to some VB developers, many in the community have already unknowingly taken on the task of refactoring as they go about projects, said Les Smith, an independent software developer, president of HHI Software and creator of NET Refactor.
"I find myself refactoring as I convert applications from VB to C#," Smith said. "Much of the [original] code can be used, but I have to convert it." One often recognizes overly large methods and such when examining legacy code, he indicated. Sometimes -- but not all the time, he stressed -- these are obvious areas for refactoring. Software for refactoring can help disclose these areas for attention, as well as less obvious ones.
Smith's home-brewed definition of refactoring -- "an organized methodology for changing the internal appearance and organization of code without altering the external behavior, except for causing your code to perform better" -- may be more useful than the textbook definition.
Smith and other tool makers may have struck a mother lode with refactoring for VB. Reaction in the community was notably mournful when Microsoft corporate bloggers somewhat humbly last fall reported that refactoring was not going to make the cut in Visual Basic 2005 within the Visual Studio 2005 suite.
Developers know better than anyone that features get jettisoned to meet schedules. Everyone on hand understood that when Microsoft re-dubbed its code-named Whidbey tool set as Visual Studio 2005, there was going to be some give-and-take to meet a deadline with a "hard stop."Snippets and My.Space may meet more developers' more immediate needs, but Microsoft may have missed an opportunity to help the VB community with out-of-the-box refactoring expertise. In any case, it should prove interesting watching a refactoring cottage industry further develop.