Comparison of .NET Refactoring Tools
Scott Bellware <sbellware <at> hotmail.com> <sbellware <at> hotmail.com>
2003-01-05 23:54:55 GMT
Refactoring Tools for .NET
Products
========
.NET Refactoring, www.dotnetrefactoring.com
C# Refactory, Xtreme Simplicity, www.xtreme-simplicity.net
Price
=====
.NET Refactoring: $110 USD
C# Refactory: $150 USD
Refactorings Supported
======================
.NET Refactoring
----------------
- Encapsulate Field
- Extract Method
- Inline Temp
- Introduce Explaining Variable
- Move Method
- Rename Local Variable
- Rename Field
- Rename Method
- Rename Parameter(Method)
- Rename Indexer Parameter
- Rename Property
- Replace Magic Number with Symbolic Constant
- Replace Temp with Query
C# Refactory
------------
- Extract Method
- Extract Superclass
- Extract Interface
- Copy Class
- Rename Type
- Rename Member
- Rename Parameter
- Rename Local Variable
Metrics Supported
=================
.NET Refactoring
----------------
n/a
C# Refactory
------------
- Total lines of code
- Blank lines
- Number of executable statements
- Comment lines of code
- Comment percentage
- Average lines of code per method
- Average lines of code per class
- Number of projects
- Number of files
- Number of classes
- Number of top-level classes
- Cyclomatic complexity
- Total cyclomatic complexity
Qualitative
===========
Xtreme Simplicity has an edge over .NET Refactoring in the
brand/image area. The Xtreme-Simplicity website represents a bigger
effort than the .NET Refactoring site. I tend to assign value to
this when I'm evaluating different products and vendors. Then
again, another way to look at this is that the .NET Refactoring
folks have spent more time on their product than the web site. Many
open source projects don't have butt-kickin' marketing collateral,
but end up with a truly great product. C# Refactory has support for
metrics that had to have taken some effort, so I don't think the no-
time-to-work-on-the-website argument really stands up. Even
though .NET Refactoring supports more refactorings than C#
Refactory, C# Refactory has features that .NET Refactoring doesn't
and their brand/image effort still seems to have been greater. What
it might suggest is that the folks at Xtreme Simplicity have more
resources at their disposal than the .NET Refactoring folks. Again,
there's really know way to know if this reflects on the products
without comparing both of them side-by-side.
I sent a message to both groups asking why anyone should chose their
product over another product. I'm comforted by a product group that
knows where they stand in terms of what's offered by other groups in
their field. Sometimes no one in a nascent market (I think that
refactoring products for .NET is pretty nascent) has had time to
take a long look at the other products in the space, so it's
entirely excusable if I don't get an exhaustive response from
either. It comes back to resources if one group has the resources
and the wherewithal to take a look at products similar to their own,
then I'm comforted by the idea that they're not necessarily working
in isolation in regards to what's going on outside their own
window. I'll let anyone who's interested know the results of my
inquiries to the product groups when I get responses to my emails.
Both products come packaged with an installer a definite plus.
Kudos to both groups for taking the time to explore Visual
Studio .NET's support for building msi packages. .NET Refactoring
requires the J# runtime redistributable and prompts you to install
it if it's not found. I'm gonna take a leap now and assume that if
this product requires the J# runtime, then it's possible that it's
written in J#. If this is true, then it's possible that it was
ported from an exiting java app. I see this potentially as a good
thing since it possibly says a little something about the maturity
of the source base (even though it may have had to be converted to
J# code). On the other hand, I feel placated by a C# product that
is written in C#. But that's probably an emotional response to an
issue where an emotional response isn't entirely appropriate, so I'm
willing to give myself a poor grade for taking this into
consideration. I certainly don't take this issue into consideration
for TogetherSoft's support of C#, and their product line is most
certainly built on java.
Xtreme Simplicity does a good job of showing you what you're getting
into with their product by providing screen shots of each supported
refactoring. They present the before and after with a big arrow
reminiscent of the way that Martin Fowler's refactoring catalog
shows before representations of a given refactoring. .NET
Refactoring doesn't provide this kind of material, and I think it's
a detriment to their promo efforts. It's certainly nice to see what
you're gonna get before you get it. I appreciate any vendor who
will take the time to provide screen shots and example code that I
can peruse before downloading and working with an eval.
Personal Concluision
====================
Even though .NET Refactoring provides support for more refactorings,
I'm going to give C# Refactory a spin. If I had the time to
evaluate both, I would, but I don't. I think Xtreme Simplicity has
done a better job of luring me to their product and I think I can
live with the lesser number of supported refactorings for now. I
get the feeling that they have more resources to work with and that
their product will mature. I'm also pretty stoked to take a look at
what their metrics offer. It'll be interesting to see how well
their metrics stack up against Control Center. I'm guessing that
you can't compare metrics from one day with metrics from other days
and get an idea of how code quality is progressing over time as you
can with Control Center. Nonetheless, it would be nice to put a
$150 tool on developers' desktops and let them take a look at their
cyclomatic complexity numbers on the spot (that is, if metrics are
actually important to a given development group
.
I'm about to start doing some refactoring on a project of mine. If
anyone's interested, I'll share my feelings about working with C#
Refactory in the "real" world.
Cheers,
Scott
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Flexible Keyboard is the ideal accessory for PDA users that are on the move.
http://us.click.yahoo.com/dCBVZC/WnCFAA/xGHJAA/umvwlB/TM
---------------------------------------------------------------------~->
To unsubscribe from this group, send an email to:
refactoring-unsubscribe <at> yahoogroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/