Trying to live without ReSharper in Visual Studio 2017
This is an experiment that is doomed to failed, but given that I just setup a new VS 2017, I decided to see how it would feel to run it without ReSharper and how it impacts my workflow. Please note that this is very much not an unbiased review. I have been using ReSharper for my day to day coding for over a decade, and the workflow it enables is deeply rooted in how I work. I’m going to ignore any differences in key bindings, as irritating as that can be, in favor of just looking at different features.
So far, I spent a couple of days trying to work on VS 2017 without ReSharper. It has been quite frustrating, but I was able to sort of limp along. I most certainly felt the lack.
My hope was that I would be able to see the promised performance improvements without it, and then consider whatever it is worth it. That wasn’t the case.
As you can see, ReSharper is not installed, but I managed to get VS into a hang several times. It seems to happen with NuGet, or when trying to use the Test Explorer and a few times when I was trying to edit code while the solution was compiling.
Without any meaningful order, here are the things that I really felt the lack of.
- Go to definition with automatic decompile is something that I apparently use a lot more than I expected. It helps figuring out what I can expect from the method that I’m looking at, even when it is not our code that I’m looking at.
- Refactor method ignoring whitespace lets me just write a statement and it becomes a method name. This is actually quite nice.
- Quick docs in R# is very nice, that is, the ability to hit Ctrl+Q and get the docs for a method is something that I seem to be using a lot. This is important because I can quickly check the docs (most often, what conditions it has for returning, or specific arguments. The key here is that I don’t need to leave my current context. I can Ctrl+Q, peek at the docs, and then move on.
- Extract variable isn’t there, and so are a lot of the refactoring that I’m used to aren’t there or are hardly accessible.
- IntelliSense is also a lot less intelligent. Being able to write a method and just Ctrl+Space all the parameters because R# can fill the context is very useful.
- Ctrl+N, (symbol search) is also a LOT more useful. I’m familiar with the Ctrl+; to search solution explorer, but the features don’t compare. In one case, I get live feedback, which means that I don’t have to remember nearly as much about the symbol that I’m looking for. On the other hand, I have to write it and hit enter to see the results. There is also an issue with the presentation. Solution explorer is really poor model for it.
There is a lot of wasted space in the VS model versus the R# model.
- Update: I have since learned about VS' Ctrl+, feature, and that seems much nicer, and it also does auto peeking, which I like.
In general, to be honest, R# feels smarter (remember, I’m biased and likely work to the strengths of R#). But another aspect here is that with R#, I rarely have to leave my current context, pretty much everything is available immediately from where I am.
Even something as simple as the search above. With R#, this shows up in the middle of the screen, with VS, that is all the way at the right, so I need to move my eyes to track it. The same is pretty much true for everything else. Reference search in R# shows where I’m looking at right now, and with VS, it shows in a window in the bottom. Refactoring options in VS show up in the top right, and it is easy to miss them completely, R# put them in the front, along with what you are working on right now.
I’m going to install R# for VS 2017 shortly, and then I’ll be able to compare the speed, but I’m pretty sure that I’m not going to be very happy with that. Then again, once it is loaded, I haven’t noticed R# + 2015 being much worse than 2017 without Resharper.
Not that I’m doing this during my usual work, on a solution with 55 projects and 820 KLOC.
I have tried R# & VS 2017 for a couple of days now, and I can tell that aside from the project open times (which are absolutely atrocious with R#), I’m not seeing anything major performance wise.
That said, project open time are also “switch between branches”, and that is a major PITA.
Of course, I’m guessing R# is really popular, because:
I can guess someone was tired of “visual studio is slow” when it is someone else’s code, and they wrote this to point the blame on the relevant extension so the bug report would go to the appropriate people.
The quick docs thing and autocompletion (which basically is just a way to present documentation) are, IMHO, the killer feature of static typing. The error checking is often praised because it is the easiest advantage to comprehend and explain, but it is not the biggest advantage.
I do not know how to develop efficiently without autocompletion. I imagine you have to spend half your time looking things up.
I've managed to do it for about 30 minutes, after that I've caved in and installed Resharper.
VS's built in shortcut ctrl-, does more or less what R#'s "symbol search" does. I work in a VM on a laptop and uninstalling Resharper made a really big difference in performance for me, especially in Razor files.
@Ayende - which is your current dev machine of choice?
Razvan, Lenovo 540, IIRC, is what I run this on
I was tired of R# slowing VS down (currently for a limited time working on a somewhat weak laptop, so it's more problematic than usual). Disabled R#, installed the CodeRush trial and started using its features. Didn't even manage a whole day. CodeRush has some nice features but I didn't see a big speed difference and there was too much of R# I missed.
Ha, I did the same thing and gave up after two days. Can't live without the power of Resharper.
I did same experience some weeks ago for the same result! But I am using ReSharper for more than 10 years, so biased too!
Feels like my keyboard is broken when using visual studio without R# installed. Just won't use without it.
This won't replace Resharper, but Roslynator is a nice extension of Analyzers & Refactorings and it doesn't slow down VS.
You should have a look https://github.com/JosefPihrt/Roslynator
Reminds me of http://blog.ploeh.dk/2013/02/04/BewareofProductivityTools/ Beware of Productivity Tools by Mark Seemann. At the very least a developer should be able to critically evaluate how powertools may unconsciously creep into our design and codebases.
I've been using the JetBrains Rider EAP for a few months now and while there's still a few glitches in places, it's becoming more and more stable. There's also the added benefit of in-built Re#, better speed/performance across the board and less memory usage (read: leakage) than VS 15/17. It's definitely worth a shot, it's my primary IDE and I doubt I'll move back unless forced to.
Trent, The major issue with Rider that as a debugger, it is far less good than VS, and that is quite important for me.
I started 1 year ago to use only what vs gives me. At first it was frustrating to miss so much feature but the performance gain was immense. we have a fairly big monolith (193 project) which takes forever to load and to build. The most important reason was that i was too much hooked into the R# experience and i felt like a noob when working without. This is painful when doing code demos, interviews etc. I am very happy at this point and i see that with every version VS gets better and better. I am staying in VS land only.
PS. I found that not embracing Roslyn was a fault from Jetbrains but i can understand the why. Maybe you R# users out there should give Jetbrains Rider a try which is build around Resharper and works cross platform which is nice when developing .net core. It is still on EAP though.
This reminds me very much my own experience - from first glance plain VS2017 should have covered most of my needs, but I guess auto decompile feature is too much in my blood to be able to live without it. Also I've noticed that I use quite often triple Ctrl+N (text search) and variable extraction.
It would have been nice, if they had ability to reconfigure VS to IntelliJ shortcuts, as I'm switching from IntelliJ to VS and back, so having consistent shortcuts (at least most of them) would been helpful too.
My biggest disappointment with VS2017 is that they decided to include live unit testing only in enterprise version :(
I did a similar thing, installed vs2017.... saw resharper was in EAP, but VsVim was released, so just went with VsVim and VS, and quickly missed R#, installed the EAP.
Only thing with R#, their unit testing environment is not easily driven by the keyboard which is annoying. I tend to run continuous testing, but when you get the fails, you need to mouse to get it to show you details
My problem with R# is that refactorings are horribly slow. Especially the rename function is a complete mess! Try rename in VS2015 or VS2017 without R#. It is zero-delay, instant rename. Both F2 and implicit rename (Ctrl+. after change) are blazing fast, just rename, hit return, BAM, you are done. Now install R# and see how rename becomes a horribly slow experience, involving popups, waiting for search+apply to finish, popup disappearing... This is most probably the most used refactoring function, it is absolutely perfect in VS since VS2015 and then R# comes and messes it up completely. People have asked for an option to disable R# rename due to poor performance, but no, they don't do it. Same is true for other refactorings, if there is a native VS version available, it will be a LOT faster compared to R# version. And it will even show you a preview of how the refactored code looks, before you apply it.
If you install Roslynator, you will get ~180 new refactorings with same amazing speed as VS! They hook into the same super fast Roslyn based code model.
At work I have to use R#. At home I used to miss it. But with VS getting better and better (and with Roslynator evolving as well), I really start to favor VS without R#.
OMG, people complaining about R# performance.
Just get a decent PC (7700K, 32GB RAM, PCIe NVM SSD) ...
Bob, My machine has Intel(R) Core(TM) i7-6950X CPU @ 3.00GHz with 20 cores. 64 GB RAM NVMe - PLEXTOR PX-512M8PeG
VS is still slow, it ain't the hardware
The 6950X is very cool, but in terms of single thread performance, like most of R#, 7700K is a lot faster.
I give pure Visual Studio 2017 a shot too... Workflow is more fluent as expected!
The Search Box (Ctrl+, ) has an option to put it in the center. It is just per default on the right side.
A Decompiler is a must have for me. So I installed ILSpy. Surely I like the integrated decomplier from R# more.
Off Topic! has anyone tried the new AMD Ryzen with VS?