Return to site

Visual Studio For Mac Vs Jetbrains Rider

broken image


This document illustrates some points where Unity framework support differs in JetBrains Rider, Microsoft Visual Studio, and Microsoft Visual Studio for Mac. Note that this document is an addition to the main comparison table, which lists general features of the products.

  1. How Rider Compares to Visual Studio Rider from JetBrains only has a paid version, not a free one. This differs from Visual Studio, which also offers a community edition, of course, lacking several features of its enterprise counterpart. It's features are listed on JetBrains site here.
  2. JetBrains Rider is ranked 1st while Visual Studio is ranked 2nd. The most important reason people chose JetBrains Rider is: Extremely good at filling in all the mindless boilerplate type.

Hello, I have a question regarding creating projects of ASP.NET Core project. I'm trying to choose between Visual Studio or Rider (since I'm using MS and Linux). I'm asking due of my subject in my faculty and the guy who teach us is using VS.

Visual studio for mac vs jetbrains rider free

As the compared products are being actively developed and their functionality changes on a regular basis, we consider this comparison valid for specific releases that are indicated in the header of the comparison table.

If you discover any missing or inaccurate items in this table, please post a comment below to let us know, and we'll update the table as soon as possible.

Microsoft Visual Studio 2019 for Mac 8.2.5

General

Built in support for UnityBuilt in support for UnityBuilt in support for Unity
Support for .meta files - creation, deletion, renameNo matching functionalitySupport for .meta files - creation, deletion, rename
Unity Project Explorer tool window shows file system view of Assets and Packages foldersSolution explorer includes Unity project view, showing file system view of Assets and Packages foldersUnity Explorer tool window shows Assets folder, and lists Packages, including local file packages, git packages, and read only packages and modules
ShaderLab file supportShaderLab file supportSupport for declared properties in ShaderLab files
Auto refresh assets (background compile)No matching functionalityAuto refresh assets (background compile)
No matching functionalityNo matching functionalityShow Unity Console log with parsed stack traces - click to navigate
No matching functionalityNo matching functionalityControl play mode: enter play mode, pause, and step from the toolbar

Navigation and search

No matching functionalityNo matching functionalityFind usages of UnityEvent handler methods and Component classes in scenes, prefabs and assets, grouped by type, associated component and game object hierarchy
No matching functionalityNo matching functionalityNavigate to usages of code inside Unity, highlighting game objects inside the Unity Hierarchy window
No matching functionalityNo matching functionalityGo to Declaration and Find Usages support for coroutine names passed as string literal arguments

Coding assistance

Code completion and generation of Unity event functionsCode completion and generation of Unity event functionsCode completion and generation of Unity event functions
Links to installed or online Unity documentationLinks to installed or online Unity documentationLinks to installed or online Unity documentation
2 file templates3 file templates15 File and 11 Live Templates for creating Unity related files, serialised fields, logging and more
No matching functionalityNo matching functionalityCode completion and validation for tag, layer, scene and input names
No matching functionalityNo matching functionalityCode completion, validation and rename for coroutine names passed as string literal arguments
No matching functionalityNo matching functionality10 Context Actions, including easy manipulation of Inspector related attributes for serialised fields
No matching functionalityNo matching functionalitySummary documentation tooltips for Unity event functions

Code vision

No matching functionalityNo matching functionalityCode Vision shows usage count of classes and methods inside Unity scenes, prefabs and assets, inside the editor, with single click to Find Usages
No matching functionalityNo matching functionalityCode Vision shows actual values of serialised fields, from scenes, prefabs and assets, with single click to Find Usages

Code analysis

Semantic highlighting for Unity event function declarationsNo matching functionalitySemantic highlighting for Unity Object derived classes, event functions, serialised fields and UnityEvent handlers. Highlighting is configurable: text style (e.g. bold, italic, colours), interactive gutter icons or Code Vision information
No matching functionalityNo matching functionality38 Unity-related inspections, most including 'Why is Rider suggesting this?' explanations
No matching functionalityNo matching functionality27 Unity-specific quick-fixes
No matching functionalityNo matching functionalityClasses, functions and serialised fields used implicitly by Unity are not marked as unused'

Performance

No matching functionalityNo matching functionalityHighlights usage of expensive methods inside frequently called event functions, such as calling GetComponent inside Update
No matching functionalityNo matching functionalityInspections, quick-fixes and context actions for known performance issues
No matching functionalityNo matching functionalitydotTrace performance profiling of Unity editor on Windows, Mac and Linux
No matching functionalityNo matching functionalityHeapAllocation plugin will highlight memory allocations generated by the compiler due to boxing, closures, etc.

Debugging

Debugging Unity C# code out of the boxDebugging Unity C# code out of the boxDebugging Unity C# code out of the box
Automatically configure debugger to attach to Unity editorAutomatically configure debugger to attach to Unity editorAutomatically configure debugger to attach to Unity editor
Attach debugger to the editor and enter the play modeAttach debugger to the editor and enter the play modeAttach debugger to the editor and enter the play mode
Attach debugger to remote and standalone playersAttach debugger to remote and standalone playersAttach debugger to remote and standalone players
Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)
Debugging iOS and Android via WiFi or USBDebugging iOS and Android via WiFi or USBDebugging iOS and Android via WiFi
Debugging DirectX 11/12 shadersDebugging DirectX 11/12 shadersNo matching functionality
No matching functionalityNo matching functionalityAndroid support: LogCat viewer, device explorer, profiling tools
No matching functionalityNo matching functionalityDebugger extends certain Unity types with extra information: Scenes list all root game objects, GameObject will lists components and child game objects ECS Entity lists attached component data

Unit testing

No matching functionalityNo matching functionalityRun and debug Unity unit tests (only edit-mode tests, play-mode tests not yet supported)

For quite a long time, Unity installer came with a custom MonoDevelop distribution to assist Unity developers with starting with game development. At that time, it was the only available option for many, since other solutions were simply too expensive. Visual Studio Community was then introduced, and almost immediately it became the default Unity C# IDE, but only on the Windows operating system family. It seems like quite soon we will have another player on the market and its name is JetBrains Rider.

.NET enslaved by Windows

It's not surprising that the language created by Microsoft works best on Windows operating system family. It seems that even Microsoft is surprised by how .NET got so popular these days. It's a bit of a problem, because today we're entering a new era in which Windows is no longer a dominant operating system in the world and .NET is widely used on variety of platforms thanks to Unity. If Microsoft wants to keep .NET position and profit out of development tools, .NET must become a cross-platform framework for real.

The first step of becoming more open to multiple platforms was introducing .NET Core (wikipedia) – the first open-sourced .NET implementation. Then Microsoft introduced Visual Studio Code – the first editor with 'Visual Studio' in name that works on MacOSX and Linux. Still Visual Studio Code is 'only' a GitHub Atom fork. It's a great editor, but it's nothing when compared with original Visual Studio IDE running on Windows with ReSharper onboard. Speaking of which…

There's a new player in the game: JetBrains Rider

There's a market gap for sure – more and more developers tend to use Mac OS X or Linux as their development platform and beside Visual Studio Code and MonoDevelop (which is good, but not so great) there was nothing worth considering until recently.

Code

JetBrains is a Czechia based company known for the creation of a great Visual Studio extension called ReSharper, and IntelliJ IDEA (IDE for Java developers). It seems like they've recently decided to merge those two.

JetBrains Rider is a cross-platform .NET IDE based on the IntelliJ platform and ReSharper. If you don't know either one of those, then consider this as a great opportunity because learning these two tools will change the way you work with your code forever. Do I need to tell that it will increase your productivity? Yes, it's a buzz-word, but it's true! What is more important, it will make your work easier and you – happier.

Visual Studio For Mac Vs Jetbrains Rider

As the compared products are being actively developed and their functionality changes on a regular basis, we consider this comparison valid for specific releases that are indicated in the header of the comparison table.

If you discover any missing or inaccurate items in this table, please post a comment below to let us know, and we'll update the table as soon as possible.

Microsoft Visual Studio 2019 for Mac 8.2.5

General

Built in support for UnityBuilt in support for UnityBuilt in support for Unity
Support for .meta files - creation, deletion, renameNo matching functionalitySupport for .meta files - creation, deletion, rename
Unity Project Explorer tool window shows file system view of Assets and Packages foldersSolution explorer includes Unity project view, showing file system view of Assets and Packages foldersUnity Explorer tool window shows Assets folder, and lists Packages, including local file packages, git packages, and read only packages and modules
ShaderLab file supportShaderLab file supportSupport for declared properties in ShaderLab files
Auto refresh assets (background compile)No matching functionalityAuto refresh assets (background compile)
No matching functionalityNo matching functionalityShow Unity Console log with parsed stack traces - click to navigate
No matching functionalityNo matching functionalityControl play mode: enter play mode, pause, and step from the toolbar

Navigation and search

No matching functionalityNo matching functionalityFind usages of UnityEvent handler methods and Component classes in scenes, prefabs and assets, grouped by type, associated component and game object hierarchy
No matching functionalityNo matching functionalityNavigate to usages of code inside Unity, highlighting game objects inside the Unity Hierarchy window
No matching functionalityNo matching functionalityGo to Declaration and Find Usages support for coroutine names passed as string literal arguments

Coding assistance

Code completion and generation of Unity event functionsCode completion and generation of Unity event functionsCode completion and generation of Unity event functions
Links to installed or online Unity documentationLinks to installed or online Unity documentationLinks to installed or online Unity documentation
2 file templates3 file templates15 File and 11 Live Templates for creating Unity related files, serialised fields, logging and more
No matching functionalityNo matching functionalityCode completion and validation for tag, layer, scene and input names
No matching functionalityNo matching functionalityCode completion, validation and rename for coroutine names passed as string literal arguments
No matching functionalityNo matching functionality10 Context Actions, including easy manipulation of Inspector related attributes for serialised fields
No matching functionalityNo matching functionalitySummary documentation tooltips for Unity event functions

Code vision

No matching functionalityNo matching functionalityCode Vision shows usage count of classes and methods inside Unity scenes, prefabs and assets, inside the editor, with single click to Find Usages
No matching functionalityNo matching functionalityCode Vision shows actual values of serialised fields, from scenes, prefabs and assets, with single click to Find Usages

Code analysis

Semantic highlighting for Unity event function declarationsNo matching functionalitySemantic highlighting for Unity Object derived classes, event functions, serialised fields and UnityEvent handlers. Highlighting is configurable: text style (e.g. bold, italic, colours), interactive gutter icons or Code Vision information
No matching functionalityNo matching functionality38 Unity-related inspections, most including 'Why is Rider suggesting this?' explanations
No matching functionalityNo matching functionality27 Unity-specific quick-fixes
No matching functionalityNo matching functionalityClasses, functions and serialised fields used implicitly by Unity are not marked as unused'

Performance

No matching functionalityNo matching functionalityHighlights usage of expensive methods inside frequently called event functions, such as calling GetComponent inside Update
No matching functionalityNo matching functionalityInspections, quick-fixes and context actions for known performance issues
No matching functionalityNo matching functionalitydotTrace performance profiling of Unity editor on Windows, Mac and Linux
No matching functionalityNo matching functionalityHeapAllocation plugin will highlight memory allocations generated by the compiler due to boxing, closures, etc.

Debugging

Debugging Unity C# code out of the boxDebugging Unity C# code out of the boxDebugging Unity C# code out of the box
Automatically configure debugger to attach to Unity editorAutomatically configure debugger to attach to Unity editorAutomatically configure debugger to attach to Unity editor
Attach debugger to the editor and enter the play modeAttach debugger to the editor and enter the play modeAttach debugger to the editor and enter the play mode
Attach debugger to remote and standalone playersAttach debugger to remote and standalone playersAttach debugger to remote and standalone players
Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)Debugging iOS and Android players based on IL2CPP (requires Unity 2018.2+)
Debugging iOS and Android via WiFi or USBDebugging iOS and Android via WiFi or USBDebugging iOS and Android via WiFi
Debugging DirectX 11/12 shadersDebugging DirectX 11/12 shadersNo matching functionality
No matching functionalityNo matching functionalityAndroid support: LogCat viewer, device explorer, profiling tools
No matching functionalityNo matching functionalityDebugger extends certain Unity types with extra information: Scenes list all root game objects, GameObject will lists components and child game objects ECS Entity lists attached component data

Unit testing

No matching functionalityNo matching functionalityRun and debug Unity unit tests (only edit-mode tests, play-mode tests not yet supported)

For quite a long time, Unity installer came with a custom MonoDevelop distribution to assist Unity developers with starting with game development. At that time, it was the only available option for many, since other solutions were simply too expensive. Visual Studio Community was then introduced, and almost immediately it became the default Unity C# IDE, but only on the Windows operating system family. It seems like quite soon we will have another player on the market and its name is JetBrains Rider.

.NET enslaved by Windows

It's not surprising that the language created by Microsoft works best on Windows operating system family. It seems that even Microsoft is surprised by how .NET got so popular these days. It's a bit of a problem, because today we're entering a new era in which Windows is no longer a dominant operating system in the world and .NET is widely used on variety of platforms thanks to Unity. If Microsoft wants to keep .NET position and profit out of development tools, .NET must become a cross-platform framework for real.

The first step of becoming more open to multiple platforms was introducing .NET Core (wikipedia) – the first open-sourced .NET implementation. Then Microsoft introduced Visual Studio Code – the first editor with 'Visual Studio' in name that works on MacOSX and Linux. Still Visual Studio Code is 'only' a GitHub Atom fork. It's a great editor, but it's nothing when compared with original Visual Studio IDE running on Windows with ReSharper onboard. Speaking of which…

There's a new player in the game: JetBrains Rider

There's a market gap for sure – more and more developers tend to use Mac OS X or Linux as their development platform and beside Visual Studio Code and MonoDevelop (which is good, but not so great) there was nothing worth considering until recently.

JetBrains is a Czechia based company known for the creation of a great Visual Studio extension called ReSharper, and IntelliJ IDEA (IDE for Java developers). It seems like they've recently decided to merge those two.

JetBrains Rider is a cross-platform .NET IDE based on the IntelliJ platform and ReSharper. If you don't know either one of those, then consider this as a great opportunity because learning these two tools will change the way you work with your code forever. Do I need to tell that it will increase your productivity? Yes, it's a buzz-word, but it's true! What is more important, it will make your work easier and you – happier.

How valuable is your time?

Do you value your time? How much time do you spend on writing easy but bloated code and how much on focusing on problems that matter? ReSharper is a tool that helps you to get through the parts of the code that are not requiring too much of your brainpower. It consist of powerful generator and refactoring methods that will assist you on demand. It also includes code analyser that makes sure you won't make any simple-to-prevent mistakes. Besides that, it just tries to be smart and friendly to a developer.

Rider comes with native Unity plugin! It does not only make it aware of *.meta files, but also know MonoBehaviour specific methods like Update(). Thanks to it you will see a code-completion of these methods and you won't be seeing any warnings about unused functions.

It's even aware of Unity-specific optimizations like tag-comparing:

And maybe it's not that important, but it also shows how Rider developers are getting into details – colouring of Color struct constructor:

Yeah, your guess is right! It shows you the actual defined color!

I won't make a complete list of ReSharper features, because there's just too many of them. Instead, please browse the documentation. There's a lot of great and simple to understand examples out there.

Jetbrains Rider Plugins

Still, it's important to mention that Rider, by contrast to Visual Studio Community and Visual Studio Code, is not free. Actually, it is distributed via Early Access Program which now costs nothing, but it's justified to believe that Rider will be using a subscription payment model. For many people this information would be a no-go, but consider whether it is worth it – it can increase your productivity (in my opinion quite a lot, if you get to know it well).

But I'm happy with my Visual Studio on Windows!

I'm also a satisfied Visual Studio user on Windows. Why changing it then? The reason may be quite simple, take me for example. I'm working on Windows about 50% of time. Rest of it I spend on my MacBook and Linux Mint. On all three I sometimes need to do something in Unity. The real pain is that I have to use totally different IDE on all three platforms since Visual Studio Code for some reason does not play well with Linux (some strange mono issues) and I had to use MonoDevelop there. I'm really looking into Rider to get out from EAP to use it constantly on all of my 3 development platforms. And even now, while it is still in early stage, it works really, really well! Yet, if this scenario doesn't fit you at all, I still encourage you to try it!

Conclusion

Rider is a fresh approach to .NET development. It focuses on developer's productivity, happiness and it is aware of current market trends, which makes it an interesting alternative to Visual Studio.

JetBrains reader can be downloaded for free from its home page. Each version has a expiration period of one month. New versions are released at least once a month so until Rider is still in development, you will be able to work with it without any costs.

Visual Studio Code Vs Jetbrains

I strongly encourage you to learn as much shortcuts as you can – this IDE has been created for those who favor keyboard over mouse. If you don't know the shortcut that you're looking for, try hovering over an option to see a tooltip that often will tell you wanted key combination or try pressing shift twice to open Search Everywhere popup. It allows you to search through all of the Rider actions.





broken image