1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode で C# 開発の時の OmniSharp vs C# Dev Kit 比較表

Posted at

VSCode を使った C# 開発において 「OmniSharp」 と「C# Dev Kit」 のどちらを優先すべきかは、非常に悩ましいところです。

それぞれの特徴と比較を表にしましたので、開発スタイルや目的によって変わってくると思いますので、使い分けの参考にしてください。

特徴 OmniSharp C# Dev Kit
提供元 Microsoft (OmniSharp チーム) Microsoft
サポートされる .NET バージョン .NET Framework / .NET Core / .NET 5+ 主に .NET 6 以降(SDK スタイルプロジェクト推奨)
拡張機能名 C# (ms-dotnettools.csharp) C# Dev Kit, C#, .NET Install Tool, .NET Runtime(複数連携)
LSP (Language Server Protocol) 独自の OmniSharp ランタイムを使用 標準的な LSP をベースとした dotnet Language Server
機能の安定性 長年の実績あり、細かい制御も可能 モダンなアーキテクチャで今後の主流、ただし一部機能に制限あり(例:旧プロジェクトとの互換)
対応プロジェクト 幅広い(旧式 .csproj 含む) .NET SDK スタイルのプロジェクトが対象
パフォーマンス 大規模コードベースで重くなる場合あり 比較的高速でスケーラブル
UI 拡張 なし プロジェクトツリーや GUI を強化した UI(Solution Explorer など)
対話機能 標準の IntelliSense、定義ジャンプ、リファクタリングなど 同等以上+VSライクな開発体験(GUI付き)

OmniSharp を優先すべき人

プロダクトのフレームワークって、なかなか簡単にアップデートはできません。.Netframework 4系のプロジェクトもまだまだあるでしょう。そんな場合は無理に C# Dev Kit を使うのではなく、長年親しんだ OmniSharp が向いていると思います。

  • レガシーな .NET Framework プロジェクトも扱う
  • 古い .csproj スタイルのプロジェクトを使用している
  • 軽量なエディタでの柔軟性・CLI 主体の開発が好き
  • IntelliSense の挙動を細かく制御したい
  • VSCode を従来の方式で使い慣れている

C# Dev Kit を優先すべき人

C# Dev Kit は、.NET 6 以降のフレームワークに向けて再設計されました。今から新規のプロジェクトで使用するなら C# Dev Kit の採用検討をお勧めします。

  • .NET 6 以降のプロジェクトを使っている
  • Visual Studio に近い UI/UX を VSCode でも求める
  • 今後の公式サポートや進化を重視したい
  • GUIツールでソリューション/プロジェクト管理をしたい

両立はできるの?

両方インストールは可能ですが、同時に有効にはできません。

settings.json で以下のように設定することで OmniSharp に切り替え可能です。

settings.json
"dotnet.server.useOmnisharp": true

うまく使い分けて、快適な C# 開発ライフを楽しんでください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?