I've always taken some sort of perverse pleasure in doing things the hard way and learning for myself. When I first started working with HTML, I used Notepad – not that wholesome goodness Notepad2; plain old, suck ass Notepad. While I was involved with NaviPress in its infancy (I'd link to it but NaviSoft was gobbled up by AOL in 1995 and is WAY gone), one of the first WYSIWYG HTML editors, I felt that writing in Notepad made be
smarter tougher better. Ah…the days of stupid youth.
Fast forward to today. I now understand that benefits of productivity tools and attempt to invest at least a few hours each week in either finding them or developing them myself. Even though I like doing things the hard way, I'm a big "Intelli-crack" addict. With the .NET Framework ever expanding, I can't possibly know all the classes and methods that I need so I rely on Intellisense to inform me of my options. It's like pair programming with someone who "knows what they're doing" and I also no longer see these tools as a crutch to help me hobble but rather as a turbo charger on my "350 small block V8" that is my coding skill…but I digress…
A while back I found two candidates, Resharper and CodeRush (with Refactor! Pro), I wanted to explore for us to use here at work. Being the "try before you buy" person I am, I attempted to download each of them. Unfortunately, CodeRush was in one of it's "blackout periods" so I was unable to test it so Resharper won by default. Sidenote: I didn't realize that the CodeRush installs weren't going to work until AFTER I'd spent the time to install them – this just added to the frustration and made it that much easier to kick it to the curb. While I realize that a little reading on my part (the expiry date was noted on the site near the download link) would have clued me in to this fact, Mark, if you're reading this I'd recommend changing up the installer to check the date BEFORE installing so as to warn the users.
So I've been using Resharper for a while now and I like the fact that it did a few things really well and stayed out of my way for the most part. The "Live Templates" and "Surrounds" were very cool and a big help. Auto-completions such as closing braces, adding both parentheses and even adding semi-colons to the end of the lines were also big boosts in that it reduced the amount of typing that I had to do. Being an OCD type, the code formatting feature was AWESOME. Once I defined how I wanted it to handle whitespace, carriage returns, braces, etc. it would format my code (even the entire solution if I desired) for me. Ah…all neat and tidy. Although it was a hassle to share these settings across devs (something that's supposed to be fixed with version 2.0), it was nice to standardize these and kept from distracting me when reading code. The refactoring stuff was ok. I found the "Find Usages" to be invaluable when refactoring over a large number of files and/or projects. All of that was nice but the number one thing that I LOVED about Resharper was the dynamic compilation. The ability to provide "real time" syntax checking, declaration checking, using statement cleanup in a very graphical way via the red/yellow/green sidebar. This allowed you to see the state of your code and the location of any errors or warnings at a glance. Sadly, its downfall has been the fact that it doesn't have a VS2005 version. Well, they HAVE one but it's in beta, which acts more like an alpha than anything else. So after fighting with it for a few days via re-installs, IDE crashes, and a general lack of usability, I decided to re-evaluate my use of Resharper. Plus, since there was supposed to be built-in support for some of these features, I figured I could limp along without it. Turns out that was roughly the equivalent of trying to program using only my thumbs.
I read Scott Hanselman's blog on a daily basis, have kept up with him for some time now, and deeply respect his abilities and opinions so I figured I'd give CodeRush another shot. He's been a "Rushie" for some time now and enjoys telling folks about it. So I've been using it for a few weeks now and while it's complex, the power lies in that complexity. I'm not very far up on the learning curve yet (did I mention the steep learning curve) and I'm seriously missing a few of my Resharper features (dynamic compilation and code formatting especially) but I've found some serious gains in productivity already. Due to the depth of the product, I know that I'm not using half of the things that would save me time on a daily basis but there aren't really all that many tutorials and those that exist don't really help you learn what keystroke does what. So for now, I'm going to continue fumbling my way thru and figuring out as I go what I need and what's what. I'll post again once I've got a firmer grasp on everything.
(Whew that was a long post – sorry about that!) 🙂