Scott Hanselman

Choice amongst cross-platform .NET IDEs - VS Code, Visual Studio for Mac, JetBrains Rider

May 31, '17 Comments [20] Posted in DotNetCore
Sponsored By

A few years back, .NET development on a Mac was resigned to Mono and whatever text editor you knew how to exit successfully. Xamarin Studio came out in 2013 as a standalone IDE for mobile app development, but wasn't a generalized or web development IDE. Later the OmniSharp OSS project came along and added intellisense to a half-dozen editors with its smart out of process intellisense server but these code editors with .NET specific features, not strictly IDEs.

Side Note: I've been writing this blog post on and off for a while. Coincidentally JetBrains Rider is sponsoring my blog this week. It's a coincidence, but I want to be transparent about it as I don't do sponsored/directed blog posts - rather, folks sponsor a calendar week.

Fast forward a bit and we've got some choices amongst cross-platform .NET development on non-Windows platforms.

Visual Studio Code

First, there's Visual Studio Code (more of a code editor, but with a TON of plugins and extensions) that is a very competent editor for .NET on Mac or Linux. It's also one of the best node.js editors/debuggers anywhere - nice if you're working on multi-language projects.

Visual Studio Code

If you look in the lower-right corner there in Visual Studio Code you can see the OmniSharp flame logo in the corner, helping power the C# Extension for Visual Studio Code. For ASP.NET Core web developers, VS Code is pretty good, although its lack of support for Razor Views/Pages remains a hole. You don't get intellisense for your C# when you open a code block like @{ } in a Razor View. That said, there are a bunch of extensions that add snippets for dozens (hundreds?) of languages, syntax highlighting for basically everything, and it's all built on an open source base of TypeScript. VS Code supports git natively as well.

JetBrains Rider

Currently in "EAP," that's  Early Access Program/Preview, or beta for the rest of us, JetBrains Rider runs on Windows, Mac, and Linux and lets you manage and build .NET Framework, Mono, and .NET Core solutions. Rider supports C#, VB.NET, ASP.NET syntax, XAML, XML, JavaScript, TypeScript, JSON, HTML, CSS, and SQL within its text editor.

Rider has the smart editor and the 50+ refactorings that fans of ReSharper will appreciate, with lots of choice amongst key-binding. You can tell Rider if you prefer ReSharper, VS, Eclipse, or NetBeans key bindings. It does a ton of custom code analysis and can refactor and analyze your code while you type. It's also got a built in decompiler for exploring libraries you don't have the source for.

Rider also supports Git, Subversion, Mercurial, Perforce and TFVC out of the box and can add more source systems via plugins.

JetBrains Rider

Visual Studio for Mac

VS for Mac is new and while it started as Xamarin Studio, there's been a ton of additions to it according to Miguel de Icaza. In the feature, VS for Mac will share the exact same core editor code that Visual Studio for Windows uses for its text editors like HTML, Razor, CSS and more. One of the things I like the most about Visual Studio for Mac is that it looks like Visual Studio...FOR MAC. By that I mean it doesn't look like Visual Studio on Windows copy-pasted onto the Mac. It has a Mac UI, Mac Icons, a Mac look and feel. Much like Office for Mac, it's a native app that smells native because it is.

Visual Studio for Mac

The release of VS for Mac includes support for ASP.NET Core and .NET Core. Like all these IDEs and editors, it shares csproj and sln files cleanly with Visual Studio for Windows. That means that you can easily share projects and code with some folks on Mac and some on Windows.

Visual Studio for Mac is best when used for these scenarios:

  • Mobile development with Xamarin
  • Cloud development with .NET Core and ASP.NET Core, and publishing to Azure
  • Web development with ASP.NET Core and web editor tooling

For example, when you make a new Mobile app in C#, you can get an ASP.NET Core backend along with it. Then you can easily publish the backend to Azure at the same time you push your app onto Android or iPhone.

Finally, one of the coolest features for mobile developers on Visual Studio for Mac (and Windows) is the "Xamarin Live Player." This allows you to pair your instance of Visual Studio with your development phone and do continuous development and testing. As you make changes in Visual Studio, the changes are immediately visible in the Live Player - no need to redeploy. That feature is in preview as of the time of this writing.

If you're developing but you're not on Windows, there's never been a better time to develop cross-platform with .NET Core. Check out each of these:

Have you tried these out? What have you found?


Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test, build and debug ASP.NET, .NET Framework, .NET Core, or Unity applications. Learn more and get access to early builds!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb
Thursday, 01 June 2017 00:32:40 UTC
It's awesome that .NET is now getting so many high quality options for cross-plaform development. For me, Visual Studio Code has hit the sweet spot. I've been using full VS since the .NET beta days and after using VS Code I never want to go back.

I'm also extremely excited to see how Rider progresses. It's nice to have a third party option to keep Microsoft on their toes!
Thursday, 01 June 2017 05:21:43 UTC
Don't forget the other .net language.. all 3 editors support f# too.
Craftyfella
Thursday, 01 June 2017 05:42:52 UTC
Great post, thanks. I had no idea about Rider, will have to check it out.

It's a nit, but to be fair, MonoDevelop was out before Xamarin Studio, and was/is general-purpose. From their site:

"MonoDevelop enables developers to quickly write desktop and web applications on Linux, Windows and Mac OS X. It also makes it easy for developers to port .NET applications created with Visual Studio to Linux and Mac OS X maintaining a single code base for all platforms."
Thursday, 01 June 2017 05:50:22 UTC
Haven't tried Rider... but curious... could someone chime in why is it better than Visual Studio Community? My company is eligible for Community Edition so I guess Rider does not make sense?
rosdi
Thursday, 01 June 2017 08:50:01 UTC
@rosdi The biggest advantage of Rider is that it runs on Linux and Mac as well as Windows, and gives you the full benefits of both ReSharper and the IntelliJ IDEA ecosystem of plug-ins (e.g. IdeaVIM). If everyone on your team is running Windows, there's no real advantage (IMO) to using Rider over VS2017+ReSharper.
Thursday, 01 June 2017 09:14:50 UTC
Visual Studio for Mac still doesn't support TypeScript (or tsconfig.json files) which is a real shame.
Thursday, 01 June 2017 09:56:56 UTC
I'm sad that you missed out MonoDevelop. It's what Xamarin Studio and Visual Studio for Mac are based on. (Think Chromium to Google Chrome).

It's an absolutely solid .Net IDE for all three major platforms that's entirely open source.

As for Visual Studio for mac being native, I don't think it is. As Monodevelop shares the same GUI with a different theme, which is written in GTK. I think it's just very well themed to look like it's native.
Jake Langford
Thursday, 01 June 2017 10:42:52 UTC
Unfortunately Rider currently doesn't have debugger on non-Windows OS. I know they are working on it for the last few month already. VS is still way-way ahead of any other option in the list above. Yes, it is possible to develop on Mac/Linux, but it is very challenging when you have a large/serious app.
Jenya Y
Thursday, 01 June 2017 12:51:56 UTC
Being a core .NET developer for the past decade, my world revolved just within the boundaries of Visual Studio. Now the world has just opened up. Got my first Mac and VS Code is my choice of editor after trying out Sublime Text fo few days. Loving every moment that I am spending inside VS Code on my Mac. Especially with the CLI Tools for pretty much any framework, .... do I have to say more? 😇😇😇
Liby George
Thursday, 01 June 2017 13:44:47 UTC
I wish I could use any of these IDE's and not having .net core installed in my machine (cause I'm only debug and deploy them in containers)
Luiz Antonio Adolphs Junior
Thursday, 01 June 2017 14:04:13 UTC
Rider looks nice, but will stick with Visual Studio on windows and VS Code/NeoVim on linux.
Another thing to consider is the price of Rider (compared to i.e. Visual Studio licensing it's pretty decent pricing (assuming you don't qualify for community license)).
Frank
Thursday, 01 June 2017 14:40:59 UTC
Small typo: In the feature -> In the future.

Other than that, great post, Scott. I'm more of a windows user, but am always happy to see the ecosystem is growing and allowing for people to use .NET with whatever OS/IDE combo they prefer.
Vitor Barbosa
Thursday, 01 June 2017 14:47:34 UTC
Like others have said, Rider looks pretty nice. But does it offer that much more than VS Code for the money? Makes me think about WebStorm, which used to be the best deal on the planet, but today not so much. VS Code came out and I haven't looked back since.
J.P. Hamilton
Thursday, 01 June 2017 15:48:32 UTC
Who's the slowest of them all, LOL!

I'm betting Rider, but I don't know for sure.

I use both VS2017 and VSCode depending on the project type and platform... Love them both!!!
Fallon
Saturday, 03 June 2017 06:01:07 UTC
Rider brought alot of joy back to .NET development for me. It's a very fast IDE hitting the sweet spot between omnisharp and VS for me.

It opens to a point where I can start typing in seconds, granted it does not boot up the resharper host with full intellisense particularly fast either but while it does that I have a non blocking editor where I can roam files. Switching branches and project reloads are effortless.

This is a far cry from the almost hourly crashes or minute long lockups in VS. If Rider crashes it never does to a point where the editor locks up. You might lose resharpers power but again restarting Rider does not take ages taking me out of the zone. Also I have not had this happen since many EAP releases.


Play around a bit with it's setting and Rider also looks the part too: https://twitter.com/Mpdreamz/status/847044595770908676https://twitter.com/Mpdreamz/status/847044595770908676



Martijn Laarman
Saturday, 03 June 2017 15:24:14 UTC
For .NET IDE Visual Studio is better than other but other tools like Rider really make development faster than classic editors..

For cost and easiness, Visual Studio definitely has higher priority..
Saturday, 03 June 2017 15:24:17 UTC
For .NET IDE Visual Studio is better than other but other tools like Rider really make development faster than classic editors..

For cost and easiness, Visual Studio definitely has higher priority..
Monday, 05 June 2017 17:05:48 UTC
Visual Studio Code for Mac/Linux seems for someone who has been using Mac/Linux for a long time, not really for someone who moves from Windows to the other platform. The concept is still a little bit confusion and documentation is not really clear or enough.

And not sure how we can distinguish between few similar plugins if there is no official one?
Xiao
Thursday, 08 June 2017 02:38:13 UTC
The users of your web site or mobile app don't care what OS or IDE you used to create it.

Visual Studio 2017 on Windows 10 Pro is the best.
Me
Saturday, 10 June 2017 15:50:09 UTC
Rider is so much faster than VS2017 + Resharper. Intellisense pops up in a blink, never takes longer than 1s.
And I love how SVN integration and unit test management is designed.
I already switched, even it is still EAP. No problems so far.
Piotr
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.