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# 開発ライフを楽しんでください!