2023年11月14日に.NET 8 が正式リリースされました。今回はLTSということで、個人開発にも使ってみたいと思い早速環境を準備していきます。
.NET 8の特徴
基本的にはがっつり新機能が追加されたというよりは.NET 7の機能強化版という位置付けです。jsonAPIパフォーマンスの向上、AI関係の機能強化等ありますが、新機能として.NET Aspireのプレビュー版も登場。今回新機能には触れませんが、何よりLTSということで、バージョンアップ先として候補に上がるのではないでしょうか。
色々と.NET coreに関しても興味深い発表がありますが、英語が不得意なので日本語情報が増えてから追いたいと思います。逃げです。
.NET8環境の準備
基本的には公式ページの手順を追えば問題無いと思います。
まずは以下のページでインストーラをダウンロード。OSに対応したものをダウンロードしてくれるはずです。私はM系MacBook Proのため、Arm64Mac版をダウンロードします。
起動するとインストーラが実行されます。
特に変更することはありませんでした。インストール完了後、ターミナルを起動し「dotnet」と打って認識されているか確認してください。
プロジェクトの作成
ターミナルにて以下のコマンドを入力して、作成可能なテンプレートを確認します。
dotnet new list
...以下結果。
テンプレート名 短い名前 言語 タグ
------------------ -------------------------- ---------- --------------------------
API コントローラー apicontroller [C#] Web/ASP.NET
ASP.NET Core (空) web [C#],F# Web/Empty
ASP.NET Core gR... grpc [C#] Web/gRPC/API/Service
ASP.NET Core We... webapi [C#],F# Web/Web API/API/Service
ASP.NET Core We... webapiaot [C#] Web/Web API/API/Service
ASP.NET Core We... webapp,razor [C#] Web/MVC/Razor Pages
ASP.NET Core We... mvc [C#],F# Web/MVC
Blazor Web アプリ blazor [C#] Web/Blazor/WebAssembly
Blazor WebAssem... blazorwasm [C#] Web/Blazor/WebAssembly/PWA
....
このような感じで様々なテンプレートが表示されますが、今回はASP.NET Core Web APIです。
dotnet new webapi --use-controllers -o TestApi
cd TestApi
dotnet restore
dotnet run
するとプロジェクトが作成され実行されます。ポート番号は出力で確認し、URLにアクセスしてください。
※ルートにアクセスしても404になります。必ず「/weatherforecast」にアクセスしてください。
また、localhost:xxxx/swagger にアクセスするとSwaggerUIが表示されます。
問題無いことが確認できたらvsCodeでフォルダを開きましょう。
vsCodeの設定
このままではvsCodeといえどC#環境が整っていないので、初期設定を行います。
この時点でvsCodeでプロジェクトフォルダを開くと、SDK関係でエラーが発生するかと思いますが気にしないでください。
まずは拡張機能の「C#」をインストール。また、「C# dev kit」もおすすめされるので入れておきましょう。dev kitはおそらく開発の終了が宣言されたVisual Studio for Macを意識してのことでしょうか。
このままだとvsCodeでSDKのパスを認識できませんので、Macの環境設定にパスを通します。
Finderを開き、隠しファイルを表示します。自分の環境では.zshrcに編集を加えることでパスが通るので、以下を追加しました。
/usr/local/share/dotnet
ex.
export PATH="...別のパス:/usr/local/share/dotnet"
※蛇足ですが環境変数は「:」で区切ります。
変更後、vsCodeを再起動してSDKパスエラーの通知が表示されないか確認してください。
まだ発生する場合はMacを再起動してみましょう。
終わり
こんな感じで最小構成のapi環境を準備することができました。.NETといえど、PHPやnodeレベルで開発環境構築は簡単なことが伝わりましたでしょうか?ぜひC#での開発、考えてみてください。