Visual Studio Code の拡張機能である「C# Dev Kit」が GA となったので使ってみた

2023.10.12

いわさです。

2023 年 8 月に macOS 向けの Visual Studio である、Visual Studio for Mac の廃止予定がアナウンスされました。

Visual Studio for Mac は、元々 Xamarin がマイクロソフトに買収されたタイミングあたりで、Xamarin プラットフォーム向けの IDE である Xamarin Studio が Visual Studio for Mac にリブランドされたところから始まっていたと思います。

私も Xamarin.iOS のビルドやデバッグによく使っていましたが、いつからか .NET(旧 .NET Core)アプリを macOS 上で開発することが多くなり、最近では Windows 版の Visual Studio よりも使う機会が多くなっていました。

Visual Studio for Mac の廃止アナウンスは残念ではありますが、今後は Visual Studio Code 用の拡張である C# Dev Kit などへ投資していくということも述べられていました。

C# Dev Kit が GA しました

そんな C# Dev Kit が、先日 GA を迎えました。
(.NET MAUI や Unity のサポートはまだプレビュー段階のようです)

私は普段 macOS を使っていますので今後の C# のクロスプラットフォーム環境開発には非常に興味があります。
本日は C# Dev Kit を Visual Studio Code へ導入し、簡単な .NET ソリューションを構築して使い勝手を確認してみましたのでいくつか紹介できればと思います。

ライセンスについて

はじめにライセンスについて注意が必要です。
C# Dev Kit は Visual Studio Marketplace からインストールが可能ですが、下記ページの末尾にライセンスについて言及されています。

  • C# Dev Kitは、一部の機能においてVisual Studioと同じ基盤の上に構築されており、Visual Studioと同じライセンスモデルを使用しています。
  • これは、Visual Studio Communityに適用される条件と同じで、学術機関やオープンソース開発だけでなく、個人にとっても無料であることを意味します。
  • 組織向けには、C# Dev KitはVisual Studio ProfessionalとEnterpriseのサブスクリプション、およびGitHub Codespacesに含まれています。
  • 完全な条件と詳細については、ライセンス条項を参照してください。

現状の Visual Studio も無償で利用可能な Community Edition、有償で利用出来る Professional Edition、Enterprise Edition が存在します。
詳細はホワイトペーパーなどを確認してもらいたいですが、雑に言うと個人開発や小規模な事業者は無償版を使うことが出来て、それ以外のユーザーはライセンスの購入が必要です。

インストールと設定

インストールについては、通常の Visual Studio Code 拡張機能のインストール方法と同じなので詳細な手順は割愛させて頂きますが、依存関係で C# 拡張機能が自動でインストールされます。

現時点の C# Dev Kit の主要機能は主にソリューションエクスプローラとテスト機能であり、通常のエディタの C# コーディング部分については従来の C# 拡張機能でカバーされています。

別途検証のうえ紹介したいと思っていますが、IntelliCode for C# Dev Kit の拡張機能も使うことが出来るので C# Dev Kit を使うことで新しいコーディング体験を得ることが出来そうです。

インストール後、次のアイコンからライセンス認証を行うことが出来ます。
インストール直後は individual license なので Community Edition 相当の個人利用の状態となっています。

このアイコンをクリックすると、ブラウザで Visual Studio サブスクリプションのアカウントにサインインすることで Visual Studio Code 側でのライセンス認証が行われます。Visual Studio などでよくやってるあれですね。

ここでは私が所有している Visual Studio Enterprise サブスクリプションでサインインしました。
これがライセンス認証が済んでいる状態となります。

ソリューションエクスプローラ

C# Dev Kit 自体の本日時点の主要な機能のひとつが、ソリューションエクスプローラです。
ファイルエクスプローラは Visual Studio Code の機能として備わっていますが、Visual Studio のソリューションファイルやプロジェクトファイルを認識し、構成を可視化してくれます。

プロジェクトファイルやソリューションファイルを認識する

まず、開いているディレクトリ配下にソリューションファイル(.sln)やプロジェクトファイル(.csproj)が存在していると、次のソリューションエクスプローラが使えるようになります。

以下は標準のファイルエクスプローラーです。
C# 拡張機能によって、コンテキストメニューに C# に関連したファイルを追加することが出来ます。これで十分開発出来るんですけどね。

次がソリューションエクスプローラーです。
コンテキストメニューを見てみると次のように .NET 開発用のメニューになっています。
Visual Studio に慣れている方には見慣れたメニューが多いのではないでしょうか。ファイルや参照の追加だったり、ビルドメニューが存在しています。

残念ながらデプロイやプロパティ関係の機能が本日時点では無いようなのですが、今後のアップデートに期待したいところです。

ファイルやプロジェクトの追加

試しに「Add New File...」からファイルを追加すると、次のようにダイアログで追加したいファイルを選択することが出来ます。

また、ソリューションの場合はプロジェクトの追加などを行うことが出来ます。

ここでは適当なライブラリ用のプロジェクトを追加してみました。

ソリューションエクスプローラー上でプロジェクト参照の追加を行って、メインクラス側で使用するように実装します。

ビルドと実行

ビルドやクリーンもソリューションエクスプローラーから行うことが出来ます。
プロジェクト単独でのビルドも出来ますし、ソリューション全体のビルドも出来ます。

また、実行についてもデバッグメニューから行うことが出来ます。

次はデバッグなしで実行した状態です。

次はブレークポイントを設定してステップ実行している状態です。

パッケージの参照

.NET 開発では NuGet パッケージの使用は欠かせませんが、残念ながら本日時点で C# Dev Kit から NuGet パッケージマネージャーのようなものを起動したパッケージの追加機能は出来ません。
参照されているパッケージは次のように馴染みのある形で確認が可能ですが、追加については CLI などから実施が必要です。ここもアップデートに期待したいところですね。

テスト機能

テストエクスプローラーを使用してテストを実行およびデバッグするためのネイティブテスト環境が含まれています。

ソリューションエクスプローラでテストプロジェクトを追加することが出来ます。
対応しているテストフレームワークは MSTest、NUnit、xUnit の 3 つです。

簡単なテストを実施しました。

ビルドするとエディタ上でテストコードが認識され、エディタからその場で実行することが出来るようになります。

テスト結果はエディタ上にインラインで表示されます。
この場合は期待値と実際の値が異なっているためテストが失敗しました。

次のテストエクスプローラーから全テストの結果やステータスを管理することが出来ます。

さいごに

Visual Studio Code の拡張機能である「C# Dev Kit」が GA となったので使ってみました。

まずはソリューションエクスプローラーとテストという感じですね。
全体的にあれもこれもといろいろ機能は欲しくなりますが、使ってみると Visual Studio 感が出てて良いですよこれは。

個人的にはデプロイ機能が欲しいのと、NuGet パッケージの管理をもっと簡単に出来たらいいなと思いました。
あとは私の場合だと AWS 製のテンプレートをよく使うのでサードパーティのテンプレートなどもソリューションエクスプローラから使えると嬉しいですね。

今後のアップデートに期待したいです。