C#

These questions were only shown to the developers who chose C# as one of their three primary programming languages.

What versions of C# do you regularly use?

27%27%48%52% 6%10%C# 5 (async / await, caller info attributes)C# 6 (? and nameof operators, static imports, exception filters, Roslyn)C# 7 (pattern matching, local functions, ref locals and returns, out variables)C# 8 (static local functions, nullable reference types, default interface methods)An earlier versionI'm not sure

C# developers adopt new versions quickly. More than half of them use C# 8. It seems many start using the new language features when they are released.

What runtimes do you regularly use?

75%
.NET Framework
68%
.NET Core
13%
Mono

Adoption of .NET Core is still growing. Let’s see if it manages to beat .NET Framework next year.

Which technologies or frameworks do you use?

55%43%42%31%26%22%19%18%13%ASP.NET CoreEntity FrameworkASP.NET MVCWindows FormsWindows Presentation Foundation (WPF)AzureASP.NET Web FormsUnity3dXamarin
All results

ASP.NET MVC has lost its precedence, and ASP.NET Core has moved into the leading position.

Which IDE or editor do you mostly use for C# development?

65%
Visual Studio
20%
JetBrains Rider
11%
Visual Studio Code
2%
Visual Studio for Mac
0%
Other

What operating system is your C# development environment using?

92%Windows
14%macOS
7%Unix / Linux
0%Other

It looks like some developers take advantage of .NET Core being cross-platform and use it on operating systems other than Windows. Their number is still relatively low, however.

Which unit-testing frameworks do you regularly use, if any?

37%32%20% 9% 0% 1% 9%16%NUnitxUnitMSTest/Visual Studio Unit Testing FrameworkMSTest V2MbUnitOtherI write unit tests, but don’t use any frameworksI don’t write unit tests for C#

This question was only answered by respondents who either write or use unit tests.

Both MSTest and MSTest v2 have suffered a sharp drop in popularity.

What performance or diagnostic tools do you regularly use, if any?

40%21%20% 5% 3%Visual Studio's built-in performance and diagnostic toolsdotTracedotMemoryWindows Performance ToolkitPerfView
All results

Unity3D developers predominate among those with specific frameworks who don’t use any profiling tools.

In Rider, auto-detect memory issues in your application with Dynamic Program Analysis, which runs in the background of your IDE. Check out what this user has to say about how helpful it can be:

“Dynamic Program Analysis in @JetBrainsRider caught a 13GB memory allocation on application start from some old code I hadn't looked at in a while. Silly mistake using .ToString() instead of parsing to an int.”

Caleb Ukle

@CU_Galaxy


Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

Join JetBrains Tech Insights Lab

Take part in surveys and UX studies to make JetBrains products easier to use yet even more powerful. For participating in our research, you’ll also get the chance to earn rewards.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.

© 2000-2020 JetBrains s.r.o. All rights reserved.