A Surfeit of C#/.NET IDEs

Published by marco on

For many years, the C#/.NET world has been dominated by a single main IDE: Visual Studio. MonoDevelop has also been available for a while, as an alternative for users on other platforms. Lately, though, there have been a few new contenders in the .NET IDE arena.

Visual Studio for Mac

We’ll get this one out of the way first: this is basically Xamarin Studio for Mac, rebranded as Visual Studio for Mac. This IDE is pretty and extremely well-integrated into MacOS, with a lot of animated editor interaction for compiler warnings and errors.

Unlike Rider or Visual Studio 2017 with ReSharper, Xamarin Studio doesn’t benefit from the R# tooling, so there are a few things immediately missing. Navigation is not as smooth as with ReSharper-based IDEs[1], although it’s definitely on-par with what I’ve experienced in Xcode. Xamarin Studio is fast and pretty good and I’ll definitely keep it in the mix for testing Quino on alternate platforms once we start the move to .NET Standard 2.0.[2]

Project Rider

 This is only an EAP, so keep that in mind when testing. I installed this IDE on my Mac and Windows. The setup process was very smooth, asking for theme/color preferences and—most importantly—keyboard preferences. This time, the key-mapping for “Visual Studio” turned out to be quite appropriate and good.

I was able to load the Quino solution relatively quickly. The first load kicks off two processes: Nuget Restore and Process Files. On subsequent loads, the Nuget Restore no longer applies and Process Files benefits from Rider having cached everything the first time around.

I couldn’t find any option to add an extra NuGet source, which was odd. There is a tab in the “Nuget Packages” pane called “sources”, but it just lists the NuGet configuration files but doesn’t offer any way to add sources.

On the plus side, the test runner worked immediately. but on the minus side, it delivered results inconsistent with VS2015 and VS2017 running on the same machine. It looks and behaves like the same test runner as in ReSharper[3], but the results are different for some (a few hundred) Quino tests.

It loads quickly, can deal with the Quino solution without issues and the test runner works. Everything else felt like Visual Studio with ReSharper—at least for the stuff I use. I’ll keep an eye on this IDE.

Visual Studio 2017 RC1

 I installed this with ReSharper 2016.3EAP9 and was pleasantly surprised to see that it behaved like an actual RC. That is, instead of releasing Alpha/early-beta software as an RC—I’m looking at you, .NET Core—they’ve got a really solid release on their hands.

That said, it’s not quite ready for production use (obvious from the RC moniker) but I was able to use it for productive use over a long weekend. So I was pretty encouraged that I’ll be able to let the guys at Encodo use it sooner rather than later.[4]

That said, here are the things I’ve noticed that are missing:

  • They claim that EditorConfig is included, but it didn’t work for me. I found an EditorConfig extension that I installed, but I’d already set the configuration manually by then, so I’m not sure what effect it had.
  • I’d turned CodeLens off, but I still saw a rogue Git process. I haven’t seen this process before or since, so I can only assume it came from 2017.
  • The StyleCop by JetBrains extension is not available yet, so that’s a lot of hints and warnings missing. The maintainers of this extension write that they will release as soon as ReSharper does.
  • The standard Visual Studio TestRunner is still unusable. I can’t imagine working without the ReSharper TestRunner.[5]

Everything else seemed to work fine, which speaks well of both VS2017 and R#’s latest EAP.

Conclusion

  • Xamarin Studio/Visual Studio for Mac: this won’t be in the mix yet. It doesn’t offer anything more than Rider on Mac. Plus, the Quino solution isn’t ready for Mac development yet. Once .NET Standard 2.0 is ready and we can target Quino to that, we’ll take another look.
  • Project Rider: I’ll be keeping an eye on future releases of JetBrains’s Project Rider, but won’t use the current EAP version again (tests don’t work reliably).
  • Visual Studio 2017: Once this is released, I feel good about installing it and releasing to other Encodo developers much sooner than with other versions. Especially since ReSharper’s support is already so solid and once the StyleCop extension is available. Fingers crossed that the quality stays the same.


[1] I.e. go to Base/Inheriting implementations, and so on.
[2] Although .NET Core 1.1 has been released, it seems that .NET Standard 2.0 will not be available until 2017. This isn’t exactly unexpected, but we aren’t going to move Quino onto a new platform target until this is released. It’s possible that we could target .NET Core as well, but we burned our fingers once, so we’re going to hold off until .NET Standard.
[3] E.g. I’ve been having sporadic test failures when the runner is unable to load the latest FakeItEasy assembly in Visual Studio on my desktop—but never my laptop or our TeamCity build server. A bunch of test failures in Rider were due to the same reason.
[4] We usually wait until the first service pack—at least.
[5] Which has been—thankfully—stable since 2016.2.