I’ve been using R# v5 for a few weeks (ever since the nightly builds were made public) and I’m not going back. There is an exception now and then but it get caught by R# and reported back (if you want it to) without causing any problems with Visual Studio.
There are some feature I use more then others and that I really like, in fact I like them so much I want to writye about them here:
- It’s free
I’m lucky – I work at a company that is willing to pay to make me more productive but in the past whenever I needed to buy a tool I needed to convince my manager, his manager, IT and whoever else that I should be allowed to spend the company’s money on that tool.
The good thing with downloading daily beta versions is that they are free.
Obviously everything good has to end someday and in the future this version would cost money but why not use it now and decide if it worth the cost later?
- External Sources
If you ever debugged one project from within another project you know what I’m talking about:
When you “step into” code that lives inside an assembly that belongs to some other project, if you have the assembly file symbol files you’ll be able to debug that code as well.
Because you do not really have the source code R# used to “not work” in that file – not anymore.
R# manages to show you all of the usages of a method, jump to the implementation and just work as if you’re in the code’s project. If symbols (pdb files) are missing R# will find them automatically (if he can) and download them from the symbol server.
- Value Tracking
This one is a time saver (from Resharper 5.0 overview page):
”Value Tracking gives you important information about data flow in your program. At any point in your source code, select a variable, parameter, field or property and ask ReSharper to inspect it. You will then see how its value flows through your program, back to its sources or straight to consumers. Wonder how null could be passed to a specific parameter? Track it!”
Need I say more?
I use R# as a Learning tool, I really like the fact that I can transform a lambda to delegate or a property to automatic property – that’s how I learnt how they should look and when to use them. With this version you can transform foreach loops to Linq statements – amazing! Right now I’m using it to refactor my old code to use Linq queries.
Another related feature is detecting when IEnumerable can be used instead of the Lists and ArrayLists.
If your project is not .NET 1.1 compatible you do not need to use ArrayList anymore and using List where its not needed is also a good practice especially if you do use Linq where you can.
- XML Formatting
I use a lot of XML – configuration files, WPF (XAML) and what’s not, When inside Visual Studio it’s good to have the extra support that R# brings – now in this new version I can configure the XML formatter I use to make my document more “human readable” (or whatever).
Of course there is more to this new version such as Native NUnit Support (finally), Project and solution wide warnings and suggestions and ASP.NET/MVC support to name a few why not download it today and find out for yourself.