I recently presented at the Philly.NET CodeCamp. While killing time until it was my turn, I attended a session on Test Driven Development (TDD) using NUnit for creating rich unit testing frameworks using Dependency Injection and Mock Objects, given by Len Smith.
While the topic of TDD is certainly one that warrants further discussion, I want to share a development tool I discovered along the way, as part of Len's demo. So I'm watching, and I see all this cool stuff happening in Visual Studio, that Ive never seen before. I see a bunch of code snippet shortcuts, that I KNOW arent in my copy of Visual Studio... and I see this little icon that keeps popping up, and seemingly, with no clicks or anything, this magical stuff happens and code appears.
By this point, I'm watching in amazement, not at what Len was talking about, but about all these neat little things I was dying to ask him about. I start thinking "Is this a new version of the VS10 bits?" but Ive used those, so Nope... wasnt that.
About 10 minutes in, I heard Len say "something something... ReSharper... something something...." RESHARPER... That was the tender tidbit I was looking for. I made a quick note like a good little geek in my non-iPhone, WINMOBILE Phone to make sure I didnt forget to look it up later.
So I get home and download the fully-functional 30-day trial version and install it. (Trust me if youve made it this far, youre buying this!). I fire up Visual Studio... 2008 not this supercharged new VSNext I thought I was seeing. No. Just my plain old vanilla VS2008... now nicely supercharged!
ReSharper is a product by
JetBrains that provides solution-wide error highlighting (and one-click fixes), code refactoring, coding best-practice based code validation, ease of navigation between objects in code and their definitions, as well as numerous other functions... and its extensible!
This tool is a must. Within 15 minutes of using it, I was amazed at some of the errors it found, err... I mean suggestions it made for my code! :) I was also very impressed with some of the advanced refactoring tooling it provides. I was able to easily promote methods and properties to base classes and interfaces.
One of the neatest things I saw was the ability it provides to validate string.Format() calls by looking at the number of arguments, and seeing how many placeholders exist in the format string. Another powerful feature ReSharper provides is suggestions for when methods in your code can be marked as static or if your classes can be sealed, static, etc. You really will learn alot about coding best practices from this tool by the suggestions it provides.
Get all the information at their
website... Go there... Now. Run, don't walk. Do not pass GO. Do not collect 200 dollars. Download it. Install it. Use it! You can thank me later. :)