C#のオンラインコンパイラーの紹介

初心に帰ってちょっとした学びとかも書いていきたい。

コードをさっと書いて試したいことはよくある。Webにはオンラインコンパイラーを提供してくれるサービスが存在し、ありがたいことにFreeで使えるものも多い。今回はC#について書く。

個人的に求めるているもの

  • コードがURLで共有できる (アクセスしてすぐ試せる、すぐフォークしていじれる)
  • 無料
  • なるべくログイン不要
  • できれば複数ファイルを扱える
  • できれば補完が効く

多分探せば他にもあるとは思うが、一旦以下を紹介する。

.NET Fiddle

https://dotnetfiddle.net/

.NET Fiddleはjsfiddleにインスパイアされたオンラインコンパイラー。

  • 補完は少々機能する
  • 様々なランタイムバージョン(最新の .NET 7 も可能)
  • 結果を含めた共有リンクが可能(前はログインが必要だった気がしたが今は匿名で可能)
  • Nugetに対応
  • SQL Serverを使ったDB操作に対応
  • 動作させるだけでなく、IL(中間言語)も見れる

かなり高機能で、C#のお試しはとりあえずこれでよさそう。

NugetでMicrosoft.Extensions.DependencyInjectionのコードを試し書きしたもの。

https://dotnetfiddle.net/s5UVOB

Wandbox

C# に限らない様々なオンラインコンパイラーを提供している。

https://wandbox.org/

  • ログイン不要
  • 結果を含めた共有リンクが可能
  • コードはGistで管理、複数ファイル可能

他と比べると機能は劣るが、オンラインコンパイラであると嬉しい最低限の機能はそろっており必要十分。

.NET 5で止まっており、.NET 6や.NET 7の対応が待たれる。やる気が起きたら次を参考にPR送りたい...

dotnetcore 追加 · melpon/wandbox-builder@ba0676b · GitHub

Try dot net

https://try.dot.net/

https://dotnet.microsoft.com/ja-jp/platform/try-dotnet

  • ログイン不要
  • ブラウザ上で動作(wasm)
  • 補完が.NET Fiddleよりもリッチ
  • コードはGistで管理、複数ファイル可能
  • JSから操作できるAPIを持つ
  • Microsoftが持つドメインで動作している
  • Monoを使っている

Mono 6.5.0あたりで動作しているようで、C# 9 以降の機能(record等)は試せなかった。

Replit

https://replit.com/

ユーザ登録が必要だが、非常に多機能。ちゃんとプロジェクトも扱えるし、ちょっとした統合開発環境

動作が若干もっさり。個人的にはここまで動作するのを求めるなら、ローカルでやってしまいたい気はする。

.NET Fiddleと同じコードを動かしたもの(作者のログイン時はエディタ画面だが、それ以外は実行ができるだけ)

https://replit.com/@RyoziYoda/Example#main.cs