[.NET8]MacにC#でのweb api開発環境を整える

[.NET8]MacにC#でのweb api開発環境を整える

2023年11月14日に.NET 8 が正式リリースされました。今回はLTSということで、個人開発にも使ってみたいと思い早速環境を準備していきます。

.NET 8の特徴

基本的にはがっつり新機能が追加されたというよりは.NET 7の機能強化版という位置付けです。jsonAPIパフォーマンスの向上、AI関係の機能強化等ありますが、新機能として.NET Aspireのプレビュー版も登場。今回新機能には触れませんが、何よりLTSということで、バージョンアップ先として候補に上がるのではないでしょうか。

色々と.NET coreに関しても興味深い発表がありますが、英語が不得意なので日本語情報が増えてから追いたいと思います。逃げです。

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/?WT.mc_id=dotnet-35129-website

.NET8環境の準備

基本的には公式ページの手順を追えば問題無いと思います。

https://learn.microsoft.com/ja-jp/dotnet/core/install/macos

まずは以下のページでインストーラをダウンロード。OSに対応したものをダウンロードしてくれるはずです。私はM系MacBook Proのため、Arm64Mac版をダウンロードします。

https://dotnet.microsoft.com/ja-jp/download

起動するとインストーラが実行されます。

特に変更することはありませんでした。インストール完了後、ターミナルを起動し「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にアクセスしてください。

http://localhost:5167/weatherforecast

※ルートにアクセスしても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#での開発、考えてみてください。