I am proud to announce that Visual Basic 2005 will feature full refactoring support via a free plug-in from Developer Express. You can download the latest built to work with Visual Studio 2005 BETA 2 here.
The first thought that comes to lots of developers minds is “That is awesome! I can’t wait to get the bits installed.” This is followed often by the second thought which is “What the heck is refactoring?”
No it has nothing to do with math. The clearest definition is from Martin Fowler
"Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure." -- MartinFowler in RefactoringImprovingTheDesignOfExistingCode
How often have you written software only to go back some time latter and wish you could rename a variable or change the order of parameters? This is easy in a simple application but in a complex application making sure that you got every use of the variable renamed can be a time consuming task.
This is even tougher if you reorder parameters to a method of a similar type. If you switch two strings values on a method call you won’t get any error when you recompile if you miss updating the order on a call to this function. When you run your application you will see the results and they won’t be what your were expecting.
Ever went to easily split a section of code out into a seperate method? Refactor! makes it has simple as clicking on a smart tag.
Refactor allows you to do about 15 different types of common refactoring operation in the current BETA with more on the way before the release of Visual Studio 2005.
I have been using this for the past week testing out what it can do and I am amazed. I will admit to being one of the people that didn't not feel powerful about if refactoring was there or not. I guess it was a bit of "I never had it so I never missed it." Having used it for a week a can tell you the statement is more "you don't know what you are missing until you found it." I find myself using it often even on new code.
Like lots of developers I do some bad things, like start coding and then change my mind. Refactor! has allowed me to quickly rename variables that are a bit confusing or break out section of code that have grown and belong in a seperate function.
Some people might ask why this is a plug-in from Developer Express and not in the box from Microsoft?
Refactoring was one of the items that was cut from Visual Basic in the BETA 1 timeframe. This was a great disappoint for both the VB Team and the VB Community. The VB Team focused instead on lots of great features that aren’t in other languages, such as the Exception Wizard, AutoCorrect of code, and other productivity enhancements. The VB Community took it on the chin from their C# friends that kindly wanted to point out this lose while over looking the other great things that only Visual Basic can do in 2005.
Visual Basic is and has always been a leader in productivity features. Visual Basic paved the way with Edit and Continue, Windows Forms, and reusable controls that other languages have since adapted. The Visual Basic team continues to innovate in the 2005 product.
Which brings us back to why is this from Developer Express? In order to make sure it was no contest what language was more productive in 2005 the VB Team worked with a great partner to make sure this happened and still be able to release all of the other features that are in the product. Refactoring is a great addition to all of the new and enhanced features of 2005.
When the team looked at all of the different refactoring products on the market there was no comparison. Unlike other refactoring tools, both in the box and 3rd party, Refactor works like many VB developers do. The tool works with you, not with annoying pop up boxes, it is just there and does it job. It stays out of your way until you want and need it. And when you need it, as the demos show, it is simple and easy to use. No reason to make things more complex just to make someone feel smarter.
Now if you compare this feature by feature with things such as the C# experience you will see differences. There are some refactor operations that are in the C# tool that aren’t in the VB tool. There are some in or coming that aren’t in the C# tool.
The goal was not to do 100% the same thing. The goal was to supply a tool that worked well for VB developers and made the most productivity sense. The refectoring operations were picked based on feedback from the development community about what was important to them. Developer Express started with operations that people use multiple times everyday instead of the fancy operations that you rarely use.
If you want more refactoring operations, want a product that works with both VB and C#, or want a product that works with 2002, 2003, and 2005 then you can upgrade from the free version for $99 to the Profession edition from Developer Express. The free version is incredibly powerful and great but you have upgrade options if you want.
Make sure you register on the Developer Express site when you download the bits. This will enable you to get the free updates that will be coming between now and the release.