この記事は、以下のアドベントカレンダーの 10日目 の記事だ。
カレンダーのタイトル長くない?
リンクカード見切れちゃってるじゃん。
この記事では、 『.NET 6? C# 10? 触ってもいいけど面倒なのは嫌!』 という諸兄に、今すぐ触って動かせる方法をお伝えする。
.NET Interactive の C# REPL を使え
SDK のインストールすら面倒なあなたでも、 .NET Interactive なら以下の手順で簡単に利用できる。
たったこれだけ。
実質 1 Step
C# 10 の新機能である、 定数の補間文字列 も問題なく動いているとおり、 ちゃんと .NET 6 の環境で動作していることがわかるだろう。
.NET Interactive とは?
……と、これで記事が終わってしまっては寂しすぎるので、もう少し .NET Interactive についての説明をば。
.NET Interactive は、 .NET 機能のインタラクティブな体験を、様々なツールを介して提供するプロジェクトだ。
上記リンク先のページでは、 .NET Interactive によって提供された C#, F#, PowerShell 各言語機能 (カーネル) を、 JupyterLab に入れた環境を、 Binder というサービスで立ちあげている。
Jupyter 以外にも、 Visual Studio Code 等に言語機能を加える事も可能だ。
Jupyter と Binder (mybinder.org)
Jupyter とは、 REPL 的に実行できるコード片やその実行結果などを「ノートブック」と呼ばれる形式で記録しながら、データの分析や可視化を行うためのツールを提供するプロジェクトだ。
もともと、 Python 向けに IPython Notebook という名前で開発されていたものが、 Python 以外の言語にも対応する機能 (カーネル) を追加するにあたって、 Jupyter Notebook → JupyterLab と改名されて今に至る。
Jupyter を語る上で外せないのが、この Binder (mybinder.org)。
これは、 GitHub 上にある Jupyter のリポジトリの情報をつかって、 自分専用の一時的な Jupyter サーバーを、無料でホストしてくれるサービスである。
つまり、 ほとんどの Jupyter の環境を、ブラウザを用意するだけで実行できる。
しばらく非アクティブにしていると、セッションが切断されてしまう問題はあるものの、 アクセスしたユーザー固有の環境を、会員登録もなしにブラウザで開くだけで使用できるのは大変ありがたい。
Binder を起動するタグを変更して、 .NET のバージョンを使い分ける
Binder では、起動する Github リポジトリコードのブランチやタグを選択できるので、以下のように敢えて古いバージョンの .NET Interactive を指定することで、 古い .NET のランタイムを起動することもできる。
まとめ
.NET Interactive が提供する REPL 環境には簡単なコード補完 (IntelliSense) が働くため、単純な REPL 環境としてもなかなか優秀だ。
Binder 経由で Jupyter を起動することが煩わしければ、
- .NET Core 6.0 SDK
- Visual Studio Code
- Visual Studio Code の .NET Interactive Notebooks 拡張機能
を入れるだけで、ローカルで動く高速な REPL 環境も入れられる。
「ちょっと C# コードの実行を試したい!」という場合に、ブラウザひとつで優れた実行環境が手に入るのは魅力的なので、是非活用してみてはいかがだろう?