C#

共有:

C# の質問は、3 つの主要なプログラミング言語の 1 つに C# を選択した開発者にのみ提示されました。

どのバージョンの C# を定期的に使用していますか?

50%

C# 10(ファイルスコープの名前空間、global using、レコード構造体、拡張プロパティパターン)

32%

30%

C# 9(レコード、ターゲットの型を指定した new、最上位レベルのステートメント)

33%

50%

C# 8(静的ローカル関数、null 許容参照型、デフォルトインターフェースメソッド)

24%

39%

C# 7(パターンマッチング、ローカル関数、ref ローカル変数と戻り値、out 変数)

16%

27%

C# 6(? および nameof 演算子、静的インポート、例外フィルター、Roslyn)

5%

27%

C# 5(async / await、caller info 属性)

2%

5%

それ以前のバージョン

10%

12%

分からない

.NET Framework から .NET への移行はターゲットを変更するだけという単純な作業でないにもかかわらず、ほとんどの開発者が少なくとも .NET(コア)の波に乗っていることは興味深いことです。同時に、十分な割合の開発者が .NET Framework 4.6 以前をターゲットとするプロジェクトを保守していることにも驚きです。このようなプロジェクトが 4.8 に移行されない理由が気になりますね。

Dennis Dietrich

シニアソフトウェアエンジニア、Azure Storage、Microsoft

最新の C# バージョンを使用する開発者が増えてきているのは良いことだと思います。さらに多くの既存アプリを最新の .NET バージョンに移行しているのでしょうか。それとも、新しいアプリとシステムを作成して古い既存コードを放置しているのでしょうか。

Chris Woodruff

チームリーダー、エンジニアリング、Rocket Homes

あなたの .NET プロジェクトでどのプログラミング言語を
使用していますか?

99%

C#

30%

HTML / CSS

26%

JavaScript

18%

TypeScript

6%

VB.NET

3%

F#

1%

その他

C# は .NET 開発者が当然のように選択する言語であり続けています。VB.NET と F# も使用されていますが、C# と JS や TS などのフロントエンド言語がより頻繁に使用されています。

Maarten Balliauw

デベロッパーアドボケイト、JetBrains

どのランタイムを定期的に使用していますか?

49%

62%

.NET Framework

47%

.NET 6

43%

66%

.NET Core

24%

33%

.NET 5

10%

12%

Mono

5%

分からない

C# 開発者の .NET Framework と .NET Core の使用状況は、昨年よりも大幅に減少しています(それぞれ 13 パーセントポイントと 23 パーセントポイント減)。

.NET Framework はまだ消えていません。より新しい .NET バージョンを採用している人は 2 位であり、完全なフレームワークとほぼ同等である LTS バージョンの .NET 6 を使用しているようです。

Maarten Balliauw

デベロッパーアドボケイト、JetBrains

どのテクノロジー / フレームワークを使用していますか?

56%

55%

ASP.NET Core

41%

42%

Entity Framework

25%

20%

Azure

24%

28%

Windows Forms

22%

19%

Unity

ASP.NET、Entity Framework、および Azure が、使用テクノロジーの上位 3 つを占めているのは驚くことではありません。また、一部の「古い」テクノロジーの使用率が減少してきているのも良いことです。

Joe Guadagno

シニアディレクター、テクノロジー、Rocket Mortgage

C# 開発には、どの IDE またはエディターを最もよく使用していますか?  

54%

62%

65%

Visual Studio

33%

27%

20%

JetBrains Rider

10%

9%

11%

Visual Studio Code

2%

2%

2%

Visual Studio for Mac

1%

1%

0%

その他

C# 開発者間での JetBrains Rider の使用率は過去 3 年にわたって 20% から 33% に上昇しました。

Rider の採用率に関しては、私のチームでの伸び率に比べれば驚くものではありません。昨年の始めにはチームの半数が使用していましたが、現在では全員が使用しています。

Laurent Kempé

チームリーダー兼ディスティングイッシュトソリューションアーキテクト、Innoveo

どのプラグインを Visual Studio で使用していますか?

36%

ReSharper

8%

CodeMaid

5%

Visual Assist

5%

ReSharper C++

4%

AWS Toolkit for Visual Studio

4%

Roslynator

3%

PostSharp

2%

CodeRush

5%

その他

47%

なし

プラグインを使用すればかなりの機能と生産性を得られるにもかかわらず、回答者のほぼ半数がシンプルな初期設定状態の Visual Studio を使用しているのが不思議でなりません。

Joe Guadagno

シニアディレクター、テクノロジー、Rocket Mortgage

Visual Studio Code にどのプラグインを使用していますか?

66%

C# Extensions

55%

C# for Visual Studio Code

34%

Unity Tools

33%

.NET Core Tools

23%

NuGet Package Manager

19%

ESLint

17%

TODO Highlight

C# 開発環境にどのオペレーティングシステムを使用していますか?

80%

Windows

34%

macOS

18%

Linux

これほど多くの C# 開発者が macOS と Linux を使用していることに少し驚かされました。Linux については、通常の Linux(仮想)マシンと WSL でさらに分類すると面白いかもしれません。

Dennis Dietrich

シニアソフトウェアエンジニア、Azure Storage、Microsoft

どのユニットテストフレームワークを定期的に使用していますか?

39%

37%

xUnit

38%

37%

NUnit

14%

19%

MSTest/Visual Studio ユニットテストフレームワーク

9%

8%

MSTest V2

以前 SDET に携わっていた者として、ユニットテストを書かない C# 開発者の割合に落胆してしまいました。今ではユニットテストの一般的なメリットが広く認識されていると思っていたからです。なぜこの結果になったのかを調べると面白いかもしれません。開発者がメリットを信用していないからでしょうか?トレーニングやエンジニアリングカルチャーが欠けているからなのでしょうか?ユニットテストに必要となる短期的な投資を経営陣が避けているからでしょうか?

Dennis Dietrich

シニアソフトウェアエンジニア、Azure Storage、Microsoft

どのようなパフォーマンスツールや診断ツールを定期的に使用していますか?

34%

Visual Studio 組み込みのパフォーマンスツールと診断ツール

20%

dotTrace

17%

dotMemory

13%

Unity Profiler

8%

ReSharper または Rider の Dynamic Program Analysis

3%

Windows Performance Toolkit

2%

PerfView

この分野での 20 年の経験を振り返りながら私の個人的な経験とこの数値を比較すると、この最近はパフォーマンスの解析と改善が軽視されがちだと結論づけるしかありませんが、これは良くない傾向です。私たちはいろんな意味で振り出しに戻っています。昔はせいぜいメモリや CPU リソースだけが問題でしたが、現在ではバッテリーの寿命が問題となるモバイルデバイスだけでなく、スケーリングが必要で、計算リソースの使用効率が悪いと毎月必要以上の高額な料金を支払うことになるクラウドソリューションで実行するコードを書くのが当たり前になっています。

Dennis Dietrich

シニアソフトウェアエンジニア、Azure Storage、Microsoft

プロファイリングツールや診断ツールはどれくらいの頻度で使用していますか?

74%

77%

問題が発生した際に不定期に使用している

19%

15%

定期的 - 毎日 / 毎週 / スプリントごとに実行して問題を予測している

6%

8%

常時使用している - バックグラウンドで動作している

1%

0%

その他

非常に多くの開発者がプロファイラーはパフォーマンスの問題を防止するためのツールであり、症状を緩和するためのものではないということを理解しています。今年はこのような開発者の割合が増えていますが、この傾向がこのまま続くとはまだ言い切れません。

定期的にプロファイリングを行うのは、福利を得るのと同じ考え方だと思います。退職金が良い例ですが、少額でも長期にわたって積立を続けていれば、最終的な大きな金額になります。これはプロファイリングにも当てはまります。ほんのわずかな時間しかパフォーマンスを確認できなくても、長期にわたって根気よく確実に繰り返せば、全体的に大きな改善となります。そのため、一度に大きな改善を狙ってはいません。時間をかけてプロファイリングを繰り返すたびに改善されていきます。

Dylan Moonfire

シニアソフトウェア開発者、@dmoonfire

プロジェクトでは誰がプロファイリングまたは診断を担当していますか?

35%

自分と数名の開発者

28%

自分のみ

24%

プロジェクトの開発者全員

10%

プロジェクトには該当者がいない

2%

その他

Visual Studio と JetBrains Rider で開発されているソフトウェアの種類

39%

38%

ウェブサイト

37%

35%

ユーティリティ (小規模な作業用の小さなアプリ)

28%

20%

システムソフトウェア

25%

18%

データベース / データストレージ

JetBrains Rider は、ゲーム開発(Visual Studio より +18 パーセントポイント)、エンターテイメント(+4 パーセントポイント)、および拡張/仮想現実(+4 パーセントポイント)において人気のあるツールです。

最後までご覧いただきありがとうございました!

レポートはお役に立ちましたか?
ぜひこのレポートを友人や同僚と共有してください。

ご質問やご提案がございましたら、surveys@jetbrains.comまでお問合わせください。