Jupyter NotebookとVSCodeを使ってC#を試してみよう!

2024/07/02に公開

こんにちは!わたなべです!

C#を気軽に使ってみたい、、
pythonみたいにちょろっと書いて実行できたらいいのになあ、、
と思っている方にむけて、ちょっとしたTipsをお送りします!

はじめに

C#は静的型付けのオブジェクト指向プログラミング言語で、Microsoftによって開発されました。JavaやC++に似た文法を持ち、高速で安全性の高いアプリケーション開発に適しています。
しかし、C#はPythonのようなインタプリタ言語とは異なり、コードを実行する前にビルドが必要なため、手軽にコードを試すのが難しいという側面がありました。

そこで、Dotnet Interactiveを使うことで、Jupyter Notebookという対話型のノートブック環境でC#のコードを簡単に試せるようになりました。
これによって、C#初心者でもビルドの手間なくC#の文法を学習したり、コードを素早くプロトタイピングしたりできるようになります。

必要な環境

  • .NET 8 SDK
  • Python 環境
  • Visual Studio Code
    • 拡張機能「Polyglot Notebooks」のインストールが必要

Dotnet Interactiveとは

Dotnet Interactiveは、ウェブ、マークダウン、ノートブックで対話型のC#/F#コーディング体験を実現するためのCLIツールとAPIの集まりです。以下の3つの主要コンポーネントから成ります:

  • dotnet interactive グローバルツール - JupyterやnteractなどのノートブックでC#/F#を実行するためのカーネルを提供
  • dotnet try グローバルツール - ローカルでインタラクティブなマークダウンドキュメントを作成するために使用
  • trydotnet.js API - ドキュメントやウェブページ上でC#のコードスニペットを実行するために使用

Dotnet Interactiveを使えば、C#のREPL(Read-Eval-Print Loop)をノートブック形式で利用できるようになります。コードとmarkdownによる説明を組み合わせて、ストーリー性のあるインタラクティブなドキュメントが作れます。

VSCodeの拡張機能「Polyglot Notebooks」

VSCodeでDotnet Interactiveを利用するには、拡張機能「Polyglot Notebooks」をインストールする必要があります。この拡張機能は、複数の言語を1つのノートブックで使用できるようにし、各言語に対して完全な言語サーバーのサポートを提供します。さらに、言語間で変数を共有することもできます。

Polyglot Notebooksは、Jupyter Notebookと完全に相互運用が可能で、.ipynbファイル拡張子をサポートしています。つまり、JupyterとPolyglot Notebooksの機能を使い分ける必要はありません。

Jupyter NotebookでC#を試そう

それではさっそく、VSCodeとPolyglot Notebooksを使ってC#のコードを書いてみましょう。事前に以下のインストールが必要です:

  1. .NET 8 SDKの最新版
  2. Python + Jupyter環境
  3. VSCodeの拡張機能「Polyglot Notebooks」

インストールが完了したら、VSCodeでCtrl+Shift+P(MacではCmd+Shift+P)を押してコマンドパレットを開き、"Polyglot Notebook: Create new blank notebook"を選択して新しいノートブックを作成します。

例えば以下のようなお馴染みのコードを書いて実行してみましょう:

var message = "Hello World!";
Console.WriteLine(message);

実行結果として "Hello World!"と出力されるはずです。変数の値を変更したり、メソッドを定義したり、ライブラリを使ったりと、通常のC#プログラミングと同じようにコードを書いて対話的に実行できます。

まとめ

Dotnet InteractiveとJupyter Notebook、そしてVSCodeの拡張機能「Polyglot Notebooks」を使うことで、C#のコードを手軽に試せる環境が整いました。初心者はC#の文法を学習するのに使えますし、経験者は新しいアイデアを素早くプロトタイピングするのに役立ちます。

ノートブック形式なので、コードと一緒に説明文も書けるのが魅力です。より理解しやすいドキュメントが書けるでしょう。

C#のプログラミングを始めるなら、ぜひDotnet Interactive + Jupyter Notebook + VSCode + Polyglot Notebooksの組み合わせを試してみてください!
きっとC#の学習が加速するはずです!

Discussion