お手軽にC#コーディングできる環境を作ってみたい

この記事は、 KENTEM TechBlog アドベントカレンダー2023 11日目、12月15日の記事です。

導入

こんにちは、第二開発部のA.Nです。

C#開発ではVisualStudioを開発環境として使用することが多いと思いますが、
「調べても挙動がよくわからないメソッドを実際に実行して試したい」、「見つけたサンプルコードを実行したい」 などの軽いコーディングを行うためにVisualStudioを使用するのは、以下の点でハードルが高いように感じます。

1. VisualStudioを起動(起動が遅い...)
2. プロジェクトを作成 (.netプラットフォームの選択、プロジェクト名を考える、など作業が多い)
3. コーディング
4. ビルド&実行

「もっとお手軽にC#を実行したい!」と思い、簡単に素早く実行を行える開発環境を作れるか実験してみたのでご紹介させていただきます。
※Windows環境を前提としています。

環境を考える

コーディング以外の作業はなるべく減らし、不要になったファイルの削除などの後処理もシンプルに なるような環境を目指しました。

自分が考えた環境は
1. ワンクリックでC#テンプレートを用意(batファイルを使用)
2. テンプレートを好きなエディタで開いてコーディング
3. ファイルをドラッグ&ドロップでビルド&実行(batファイルを使用)

という構成を考えました。
batファイルとは?

環境作成

C#のテンプレートファイルを作成するbatファイルを作成
@echo off
set "filename=Sample.cs"
echo using System; > %filename%
echo using System.Collections.Generic; >> %filename%
echo using System.Linq; >> %filename%
echo using System.Text; >> %filename%
echo using System.Threading.Tasks; >> %filename%
echo. >> %filename%
echo namespace HelloWorld >> %filename%
echo { >> %filename%
echo     class Program >> %filename%
echo     { >> %filename%
echo         static void Main(string[] args) >> %filename%
echo         { >> %filename%
echo             Console.WriteLine("Hello, world!"); >> %filename%
echo         } >> %filename%
echo     } >> %filename%
echo } >> %filename%
C#ファイルを投げるとコンパイル&実行してくれるbatファイル

※compilerPathにはcsc.exeのパスを指定してください。
csc.exe 場所などで検索すると調べられると思います。
csc.exeとは?

@echo off
chcp 65001 > nul

REM コンパイラのパス
set compilerPath=C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

REM コンパイル後の実行ファイル名
set compiledFile=YourCompiledFile.exe

REM 引数の数が1でない場合はエラーメッセージを表示して終了
if not "%1"=="" (
    set sourceFile=%1
) else (
    echo ソースコードファイルをドラッグアンドドロップしてください。
    pause
    exit /b 1
)

REM コンパイル実行
%compilerPath% /out:%compiledFile% /nowarn:CS8300 %sourceFile%

REM コンパイルが成功した場合
if %errorlevel% equ 0 (
    echo コンパイルが成功しました。

    REM コンパイルされた実行ファイルを実行
       echo.
       echo.
       echo ------------実行結果------------
    %compiledFile%
    del %compiledFile%
) else (
    echo コンパイルが失敗しました。
)

REM バッチファイルの実行が完了したら一時停止
pause

実際に実行してみる

実際に試してみました。

  1. CreateCSFileTemplate.batを実行してSample.csを作成
  2. メモ帳でSample.csを開いてコーディング(vsCodeなどを使用するのが良いと思います)
  3. Sample.csをRunCSharpFile.batにドラッグ&ドロップでビルド&実行
  4. 必要なければSample.csをゴミ箱へ(Sample.cs以外は作られないので消すのはこれだけで大丈夫です。)
    実際に試してみたGIFファイル

結構お手軽な気がします!

まとめ

一つのファイルに収まるようなコーディングであればかなりお手軽に実行できるようになったかなと感じます。
ただ「外部ライブラリを使用したコーディング」「GUIアプリケーションの作成」に関してはいろいろと手間が増えるのでVisualStudioを使うのが良いと思いました。

今回作成した環境がどれぐらい実用性のあるものになったかはわかりませんが、自分の環境をカスタマイズしていく作業は面白かったです。
これを機会に不満のあるところは改善できるようチャレンジしていきたいと思います。

補足

  • csc.exe :
    C# .net Frameworkのコンパイラになります。Vista以降のWindowsに標準でインストールされています。(dotnet.exeを使用すれば.netCore、 .net Frameworkどちらのコンパイルも可能になりますがいくつかオプションの指定が必要になります)
  • dotnet.exe :
    C# .net 系全般のビルドツールになります。.netCore、.net Framework(Windows環境の場合のみ)のコンパイルができます。そのほか「パッケージの追加」や「プロジェクトの作成」など様々な機能があります。
  • batファイル :
    Windows環境で実行できるコマンドを記述したファイルのことです。linux系のシェルスクリプトと同じような役割です。

KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
https://hrmos.co/pages/kentem2211/jobs/A0008hrmos.co hrmos.co hrmos.co hrmos.co hrmos.co https://hrmos.co/pages/kentem2211/jobs/A0012hrmos.co hrmos.co hrmos.co hrmos.co