CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jay Kimble -- The Dev Theologian

Philosophizing about the .Net religion

Testing Refactoring tools (again for the first time) - .Net Refactor 2005

I’ve looked at Refactoring tools a number of times in the past (but never blogged my experiences).  For the longest time I used CodeRush/ReFactor! Pro, and lately I switched to ReSharper.  I’m starting to become dissatisfied with the speed and am starting to wonder what else is out there.  I want a tool that is fairly productive, but doesn’t get in my way by either slowing my machine down or just making suggestions that get in the way.  I still need to go re-evaluate the new CodeRush/ReFactor! Pro 2.0… but that will be saved for another post.

I do want to talk to you about one of the lesser known refactoring tools: .Net Refactor 2005 (for VS 2005… they also have .Net Refactor which is for VS 2003).  First of all, it’s way cheaper than the others coming in at $59.

No Frills
This tool is strictly a refactoring tool, and little else.  It provides the following functions/refactorings: Region Organization (Move selection to region, Create region for selection, Insert [Defined in setup] regions), Code complexity analyzer, Paste local variable, Extract method (with or without return variable), Extract super class, Extract interface, Extract assembly interface, Extract expression to function, Simplify conditional, Stub new method, Extract properties, Wrap selection, Insert snippet, Show block (of code’s analysis, Refactor strings (to variable or constant), Smart commenter, Wrap long line, Rename local variable, Reorder variables, Extract object, Rename parameters, Promote local variables, Create strongly typed collection, Replace magic number, Navigation (Move to top of current region, Move to bottom of current region), Move class to namespace, Create namespace for class, Copy class,and SQL/ADO refactorings (SQL Parameters, call stored proc, Create enum from SQL, Generate stored proc — from inline SQL). 

My count is about 23 refactorings, plus a few more useful tools.  It’s a very nice complement to the refactorings you get with Visual Studio.  The ones that are duplicates of the Visual Studio refactorings (at least the C# refactorings) are enhanced.

Speed
My experience with this tool is that it is FAST!  I tried it on a simple web project (which for me has 2 projects — the web project and a support dll), and I was never wondering what was taking it so long.  Considering the speed of some of its competitors, this is a huge win for it.  There are no slowdowns during project load either and the memory footprint seems to be acceptable (I tried it on a machine running X64 with a AMD64x2 3800+ processor with 1gb of RAM). 

The downside
I really only have a couple things I didn’t like about this tool.  The first is that while it is fast it has no context.  When I’m refactoring with ReSharper or Refactor! Pro, there is a context… these tools know what I’m doing and only offer choices that make sense for what I have highlighted or make sense for where my cursor is; .Net Refactor always gives you the complete listing of refactorings.  I realize that context comes at a price… namely speed.  Refactor! Pro (for instance) doesn’t seem to have issues with speed in terms of figuring out my context, so I think it’s probably theoretically possible to get context with a minimal speed hit. 

The only other downsides I see is that, while the tool offers a nice suite of refactorings, it offers little else.  I guess maybe I’ve gotten used to the fact that both ReSharper and Refactor! Pro (with CodeRush) offer me lot’s of extra IDE goodies that are hard to leave them behind.  Both ReSharper and Refactor! Pro offer tools for creating your own refactorings/IDE enhancements.  It does support snippets which is nice (although I didn’t really mess with them that much).  (I guess I should also note that they are the company who handles .Net Commander which is a fuller suite of IDE goodies but I don’t think it includes the refactoring enhancements; .Net Commander is the evolution of VB Commander into the VS.Net world)

Final thoughts
At this point, if all I ever wanted was extra refactoring support, I would be done… at $59 with the number of refactorings supported, it’s hard to pass up.  And, as a guy who has dealt with Les Smith (one of the developers) and his IDE enhancements (way back when I worked at ZAC Catalogs), I know that his products are stable and offer exactly what you need (and not a lot of fluff).  You see, Les is a user of his stuff and he really analyzes what the average programmer would use and what they would not.  Based on that he adds features. 

If you read that I like this tool, but aren’t going to settle on it (yet), you would be correct.  Next up… JustCode…

[tags: development tools, .NET, C#, VB.NET, refactoring tools]



Check out Devlicio.us!

This Blog

Syndication

News

CodeBetter.Com Home
Current Threat level
Terror Alert Level