Resharper has proven to be a great way for me to start learning and integrating new language features. I code in my original style and resharper suggests changes based on new features like pattern matching. At first I didnt see the benefit, but this is a hugely powerful feature once you start to wrap your mind around it.
I have clocked in way more hours in Rider than VS. I can flawlessly run and debug our decades old monolith with 40-50 projects and millions LOC, containing C#, VB, Web Forms, WPF, files with 80k lines...
And all of our .NET Core services on MacOS, with all my unix-y tooling.
There is “VS for Mac”, but it’s not really VS. It’s Xamarin Studio rebranded.
Rider works excellent on my Linux box at home as well, where the alternatives are MonoDevelop and Omnisharp + text editor.
> There is “VS for Mac”, but it’s not really VS. It’s Xamarin Studio rebranded.
This was only true for the first releases, they have been integrating common code from VS and this is one of the reasons why VS moved away from COM plugins into a .NET ones.
I have actually also switched more or less to only using Ubuntu, but have been using VS Code. It has become quite powerful in my book and I like that it is the same environment I use across React Native and C#. But I may have to have a little look at Rider then.
My only complaint is I can’t ignore auto-gen’d code like EF migrations in dotCover, so my unit test coverage looks terrible. It doesn’t help that I write terrible unit tests, but still!
I run a little powershell script on build that adds the [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] attribute to generated classes in certain folders.
I switched to Rider a few months ago but I still feel like I struggle with some things.
For some reason I can’t change the position of the debugger when running and aspnetcore app and make it go back so I always have to re-run whatever request I happen to be debugging. Does that happen to you?
It also seems like ReSharper had more tips and tricks going on when compared to Rider, but I can’t imagine that would be true.
As a long-time ReSharper user, I’ve been meaning to give rider a close look for some time now. Unfortunately the last project I was on was heavy into WPF, and that was about the only box VS didn’t tick.
Any tips, tricks, or pitfalls to avoid making the switch from VS to Rider?
I used VS for years before switching to Rider and honestly... just jump in, there's not much to know. If you've used ReSharper the features should seem pretty familiar.
It is snappier than VS+R# (and I can't bear to give up all the R# features), it supports emacs key bindings, it has (IMO anyway) much better support for ancillary stuff like directly issuing DB calls or interacting with source control, and I'm just used to the IntelliJ platform after using it for years.
I've moved my laptops/desktops over to Ubuntu from Windows.
Rider was what I thought I'd give a go, with the idea that if it was really terrible I'd fire up a VM with Windows and VS.
As someone who's used Visual Studio since VS 2002, and ReSharper since (probably) 2006 - moving to Rider was pretty much run and go.
There's a few minor differences, but the only one that bugged me was the regional formatting options for the debugger. I still havn't figured out how to set it to use ISO8601 or something like it for formatting dates/times, and instead it picks something based on my OS configuration.
as an aside, if you got Rider as part of your resharper subscription, try it out, it is basically a drop in replacement for visual studio but faster and with many many little quality of life improvements you never knew you needed :)
I've recently switched to Rider full time from VS, so far it's been a really good experience & has fixed the main issues that I was experiencing with VS.
I've found it quite problematic to reliably connect to private NuGet feeds though which is a bit of a pain.
The spell checker is probably the single greatest feature in Rider. It works really well on composite type names. E.g. 'CustomerPreferences' would not get a squiggle under it for spelling, but 'CusomerPreferences' would. Performance is arguably better in most circumstances, but it doesn't support some of the bleeding edge .NET Core functionality as well as VS2019 does.
It also doesn't support some dried up crusty .NET functionality like webforms either (it compiles it fine, but doesn't have the code generation tools that VS has )
It's faster yes, but seems to be a bit more memory hungry out of the gate than VS+Resharper.
There is one HUGE thing I miss however - the Package Manager console. There's still a few things I have to do in there and thus have to switch back to VS.
VS is 32 bit, so instead of getting more memory when it needs it slows to a crawl and eventually crashes. I think that the early versions of VS are a bloodbath. VS 2019 just crawled with a small solution just because there were mixed C# and F# projects.
I should remember to upgrade always after 2 or 3 minor revisions instead of being a guinea pig for MS.
On the other hand some time ago I got a bug in rider where the F# code worked perfectly in VS but didn’t work at all in rider and until today I have rider highlighting some errors in perfectly valid c# code but the build is successful while for resharper that code is fine. And the biggest current pain that I have is that I cannot debug ny tests in VS but they work perfectly in rider. So for now I’m sticking to both of them until rider irons up some small wrinkles.
Tests not running might be X86/X64 issue. Certainly nUnit will find the tests but not run them until you change the default architecture (Resharper will run them happily in VS).
Definitely more memory hungry. But I see it as a good deal. I feed it all the memory it wants, it gives me stability, xplat, and an embarrassment of riches as far as features and conveniences. It's earned that memory.
For our 32 project solution, Rider is so awkwardly slow at startup and if you pull from master it just dies. Also it just loves to notify you about everything.
I still prefer VS.
How can a IntelliJ Idea derivative written in Java be faster than VistalStudio which is native code? Both Idea and PyCharm work much slower than VisualStudio on my machine.
At least for me, Rider is definitely faster than Visual Studio, both in startup time (easily human-measurable) and operation (also easily human measurable, by lack of intermittent hangups and laptop fans constantly whining).
I'd also say that Rider is more stable - I've only ever seen issues with preview versions; the production versions are solid, which can't be said for Visual Studio.
I was a Visual Studio fanboi for many years before discovering Rider, so wouldn't be easily swayed - please, try it and see for yourself!
Because VS has limitations on the amount of memory it can use and although they have been working on this, there is still functionality which is highly single threaded whereas Rider tends to offload most of the functionality from the UI thread into background processes.
The memory limitations can be partially kicked down the road by setting /largeaddressaware on devenv.exe. Ofc it's still beyond frustrating when you have a large solution with many component projects. I personally ram against the 4gb ceiling constantly.
I see, this means Rider is faster than the VS on many-core machines with huge amounts of memory. That's why it isn't going to be fast for me - I only use laptops, with 4 GiB RAM and dual cores each.
That's not why VS is still 32-bit. Apparently folks at MS dont think the extra address space isnt worth it and think it would adversely affect performance [1].
In my own experience in migrating servers from 32 to 64-bit on Linux 12 years ago, 64-bit was around 10-20% slower than the 32-bit build. Dont how itd fare today (no longer at that job). Even though performance was demonstrably slower, 64-bit it was due to edict from the CEO.
For what its worth, neither of the services I was responsible benefited from the extra address space. Mem usage for bother services peaked at around 750 MB.
Rico has a point to a degree and every VS version since then reduced memory footprint and improved performance (mostly due to not calculating stuff up-front which may never be needed and doing it on demand).
Microsoft has also pushed since VS 2008 (!) for plug-ins and extensions to use an out-of-process model. I think ReSharper got the message in summer 2019 that it might be a good idea – and incidentally, a lot of their performance comparison of Rider vs. VS comes down to "Rider uses ReSharper in another process, so the IDE doesn't slow down when ReSharper does things", while they themselves still pursued the slower model in VS. Heck, until a few releases ago ReSharper was still using the old synchronous COM APIs for querying the solution after loading, leading to severe pauses when opening a solution or re-loading it after switching source control states.
Vanilla VS is plenty fast and not that memory-hungry. In my experience it's extensions that try to sync with IDE state where a lot of the waiting comes in and in-process extensions where a lot of the memory usage comes from.
I worked in Visual Studio full-time for many years, now I'm coding in PhpStorm (IntelliJ IDEA) since July 2019, and while overall it's really powerful, I still kind of miss VS. One notable problem I have with PhpStorm is that oftentimes when I'm trying to find files or text in files, I press the respective keyboard shortcut and start typing immediately, in WebStorm the first few letters often end up being typed into the currently opened file instead of the "Find..." dialog, which never happened to me in VS. A minor issue, but it occurs every single day.
A similar thing makes me go nuts in Windows as well - in Windows 7 I pressed the WinKey and started typing immediately to find an application, never had a problem, but Windows 10 often misses the first few keystrokes after the Start menu opens. I can't believe this hasn't been fixed for years.
Windows 10 start menu is so bad I cut it out from every Windows machine I have any authority over. Try Keypirinha, it's very snappy and supports fuzzy search.
Why is it bad? It lists installed apps alphabetically, almost the same way all the previous Windows versions did and it has a search field to find an app quickly (AFAIK it can also search through other things but I always disable indexing and integrated web search functionality). How often do you even have to use it? I've just pinned everything I use regularly to the task bar and only use the start menu on rare occasions.
Reshaper is known to be quite slow, slowing down VS by a lot, how much depends on the project. Besides, newer versions of VS and its refactoring features have come a long way, for me, it has made Resharper obsolete.
Having switched from VS to JetBrains Rider a few months ago, I cannot recommend it enough. Way faster and less clunky than VS without Resharper, especially if you're targeting Unity. They're so far ahead I simply don't see any way for Microsoft to catch up any time soon.
Have you attempted to use VS recently without it? Newer versions of VS have come a long way to match its refactoring features. What feature specifically are you missing?
I don't understand why upcoming programming languages completely ignore the IDE experience or at most throw some basic code completion (which works half of the time) and syntax highlighting at you (not even semantic highlighting).
I'll take a "limited" language with excellent IDE support over a "powerful" language that you use notepad with.
I'd argue that Kotlin is still a "Upcomming programming languages" - and I think one of its reasons for success is how well integrated it is into the IDE. (especially if you use intelliJ)