With Visual Studio 2017 being released earlier this year I decided to go for my regular #NoResharper challenge. With every single major version of VS I try to use it without Resharper to find the best setup for me. In general I like the coding productivity boosts Resharper gives me but I hate the way it takes over basic VS features completely and the performance & stability drop it brings. Therefore I regularly try to find a light-weight alternative to R# by using plain VS with only a few reliable extensions.
In the past I used to use Resharper heavily – it was definitely a “must-have” with Visual Studio .NET and Visual Studio 2003. The VS 2005 came with refactorings and I was satisfied working without Resharper till VS2013 when I gave R# another try. There were so many useful productivity boosts not covered by Visual Studio itself or any other stable and light-weight extension (unbeatable T-navigation, Go to definition, Introduce and initialize a field from constructor parameter, Adjust namespaces, etc.). R# returned to my box to better support modern development techniques (IoC/DI, unit-testing, …).
With Visual Studio 2017, it’s improved T-navigation (Go to…), with the help of Roslyn-based refactorings (e.g. Roslynator) and continual updates with new productivity improvements I decided to go without Resharper and after 10 months I can confirm I’m still happy with this decision.
My current Visual Studio setup consists of:
- Visual Studio 2017 Enterprise Edition with all updates
- Roslynator Refactorings 2017 (Josef Pihrt) – Dear me, I just found it has been disabled for weeks in my VS2017. …which means the plain VS2017 with latest updates is powerful enough to cover my daily needs!!!
- Disable Mouse Wheel Zoom (Noah Richards) – for my clumsy hands :-)
- Web Compiler (Mads Kristensen) – for those occasional situations where I don’t want to rely on Gulp
- Markdown Editor (Mads Kristensen) – for comfortable editing of MD files (very good alternative to MarkdownPad Pro)
- SmartPaster2017 (martin w) – for pasting multi-line strings (non-essential)
- Add New File (Mads Kristensen) – non-essential
- Open Command Line (Mads Kristensen) – non-essential
- File Differ (Mads Kristensen) – non-essential
When I check this list of extensions it really seems I might be able to live with plain VS without any major pain! The biggest surprise for me came when I was gathering these items from VS and realized that the Roslynator extension is disabled. (I disabled it after installing the VS2017 15.3 update to test the new Refactorings, Code Generation and Quick Actions.)
UPDATE: If you miss CamelHumps, you might give the Subword Navigation extension a go.
Resharper is not about refactorings only. Yes, there are plenty of them, you will never use, but what about the other features: https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R2017_1_vs2017.html
Compare price of VS profi + Resharper vs. VS Ultimate, for me VS Profi + R# is the winner. VS feature set is growing, but the same you can say about R#. It is mainly about the style of work.
Interesting. I had been using R# for a long time with VS and when the license came up for renewal I decided to go for two weeks without it to see how essential it still is. I wish I’d known about Roslynator as perhaps my test was biased. My conclusion was that it is still worth the license, but is nowhere as near essential as it was in say 2010 or 2013. Go to decompiled sources is so useful as it is often really useful to know how something has been implemented. I also think that it still does refactoring incredibly well and as I’ve been using it for so long it is second nature. I could see that there were lots of little flow things that were missing without R# and I was noticeably less productive without it. Just things like automatically adding references without you needing to think about it and scanning all available assemblies for completion, VS just doesn’t do that. And that goes double in XAML. Totally agree on the performance side, but overall I still think the license is well worth the money.