Sunday, June 4, 2006

Ode to Visual Studio Express Edition

Using the Visual Studio Express editions to build a software product is a delight. I have been using Visual Studio for years, and can testify to the great quality of Microsoft's development tools. When asked about my favorite application all categories, I always answer VS. With the latest Express editions, Microsoft have outdone themselves again. Beside making the IDE available for free, there are many important new features in this package.

My hands-down favorite feature must be the built-in refactoring support. I have been a huge fan of Martin Fowler's landbreaking book "Refactoring", since its publication in 1999. Since I have been mainly developing in C/C++ during my development career, I have not had the privilege of using any refactoring tool professionally. (refactoring is dependent on reflection support, which is difficult to achieve, if not impossible, in C++ with all of its powerful features). With the advent of .NET and the initial versions of Visual Studio .NET, came the first 3rd party commercial refactoring tools, which were pretty decent but costly. I am very pleased to see Microsoft taking this step and integrating refactoring support within the IDE. The most common refactoring, "Extract Method" (to make a selected part of a method a new method) is included as well as "Rename class/method/variable". The only refactorings I am really missing from this basic package are "Extract Subclass" (to create a new class from a set of class methods) and "Move Method" (to move a method to a different class).

Other neat new things I like about the Express edition are the keyboard customizations, code snippets and code templates.

OK, that's all fine and dandy, but what can be improved? Well, I realize we are talking about first-class software that is being given away free of charge here, but it is still annoying me to see that there is no way to integrate source control in the Express editions. I would have liked to run the free Subversion system integrated in C# Express. It is also annoying that add-ons are not officially supported, although a few notable exceptions exist: nUnit and SQLite are both using unofficial workarounds to enable their components to integrate with the Express Editions.

No comments:

Post a Comment