第05章:開発環境セットアップ(Windows+VS)🪟🛠️

この章のゴール🎯
- C#で Web API をローカルで動かせる ようになる✨
- ブレークポイントで止めて、リクエストが来た瞬間の中身を見られる👀🔍
- APIを1個作って動作確認(ブラウザ or Swagger/Scalar UI でOK)✅
5-1. まず「最新版」の基準をそろえる📌✨
.NET(SDK)はどれ使う?🤔
- .NET 10(LTS) が安定枠でおすすめ🌿(SDK 10.0.102 / 2026-01-13 リリース)(Microsoft)
- 参考:.NET 9(STS) は短めサポートの「新しめ枠」だよ(SDK 9.0.310 / 2026-01-20 リリース)(Microsoft)
冪等性の教材は「長く使える土台」が大事なので、ここでは .NET 10(LTS) で進めるのが気持ちいいよ〜🔁🧱
Visual Studio(VS)は?🧩
- Visual Studio 2026 のリリースノートが公開されていて、最新版として扱えるよ🆕(Microsoft Learn)
5-2. Visual Studio 2026 で Web API プロジェクトを作る🛠️✨
① インストール(必要なWorkload)📦
Visual Studio Installer で、だいたいこれを入れるとOK👇
- ASP.NET and web development(Web API 作るのに必須)🌐
- (余裕があれば).NET desktop development(デバッグや周辺が便利)🧰
※ VS のインストール中に .NET SDK も一緒に入ることが多いよ👌
5-3. 新規プロジェクト作成(最短ルート)🚀
① VS起動 → 新規作成
- 「新しいプロジェクトの作成」→ ASP.NET Core Web API を選ぶ🌟
② 設定のおすすめ(ここ重要!)✅
- ターゲット(Framework):.NET 10.0 を選ぶ🟣(Microsoft)
- HTTPS:ON(ローカルでもHTTPSで練習できる🔒)
- OpenAPI:ON(APIの見た目確認が楽になる✨)(Microsoft Learn)
補足:最近のテンプレは「最小限の API(Minimal APIs)」がデフォルトになりやすいよ(
dotnet new webapiも基本は Minimal APIs を作る)(Microsoft Learn)
5-4. 動かしてみる(F5でOK)▶️🟢
① 起動
-
上の ▶️(https) を選んで F5(デバッグ実行)
-
起動したらブラウザが開いて、何か表示されたら成功🎉
-
起動したらブラウザが開いて、何か表示されたら成功🎉
② API確認の定番:OpenAPI/Swagger/Scalar どれ?🤹♀️
今どきはここがちょい分岐するよ👇
-
Swagger UI(Swashbuckle系)
- 「昔からの定番」。テンプレに最初から入ってることが多い📘
UseSwagger()/UseSwaggerUI()が見えたらそれ🌈(Microsoft Learn)
-
Scalar(OpenAPIの対話UI)
- .NET 10 の OpenAPI と組み合わせて使える、最近の選択肢✨
- 公式ドキュメントでも案内されてるよ🆕(Microsoft Learn)
どっちでもOK!この章のゴールは「APIが叩けて、レスポンスが見える」ことだよ📮✅
5-5. 最低限のエンドポイントを1個足す(動く手応え💓)
Program.cs に「疎通用のGET」を足すと、あとが楽〜🌟
app.MapGet("/ping", () => Results.Ok(new { ok = true, at = DateTimeOffset.Now }));
確認方法(どれでもOK)✅
- ブラウザで
https://localhost:xxxx/pingを開く🌐 - Swagger/Scalar の画面から
GET /pingを実行する🧪 - (あとでやる)curl や HTTP ファイルから叩く📮
5-6. デバッグ入門(ブレークポイントが正義)🧠🔍
① ブレークポイントを置く
MapGet("/ping"...の行の左側をクリックして赤丸🔴
② もう一回叩く
-
/pingを叩く → VSが止まる✨ -
見る場所はここ👇
- Locals(ローカル変数):今の値が見える
- Call Stack:どこから来たか分かる
- Watch:気になる式を監視できる👀
冪等性の勉強は「2回リクエストが来たとき、中で何が起きた?」を追うのが超大事🔁🔥 だからデバッグに慣れると勝ち確だよ〜🏆
5-7. VS Code + dotnet CLI 版(軽くやりたい人向け)🪶✨
① プロジェクト作成
mkdir IdempotencyPlayground
cd IdempotencyPlayground
dotnet new webapi
dotnet new webapiは、基本的に Minimal APIs の Web API を作るよ(オプションで切替もできる)(Microsoft Learn)
② 実行
dotnet run
③ 叩く(例)
curl -k https://localhost:5001/ping
5-8. よくある詰まりポイント集(ここだけ見れば助かる🧯)😵💫
HTTPS証明書でコケる🔒💥
- ありがち症状:ブラウザが「安全ではありません」みたいに言う
- 対策の定番(CLIの場合):
dotnet dev-certs https --trust
ポートが競合する🚪💥
- ありがち症状:起動時に「既に使用されています」
- 対策:別アプリを閉じる/起動ポートを変える(
launchSettings.jsonなど)
Swagger/Scalar が見つからない🤔
- テンプレや設定で OpenAPIがOFF になってることがある
- 公式の OpenAPI ドキュメント生成・利用手順のページが最新だよ📚(Microsoft Learn)
5-9. ミニ演習(10分)⏱️📝
演習A:疎通確認✅
GET /pingを追加- ブラウザ or Swagger/Scalar で叩く
ok:trueが返ってくるのを確認🎉
演習B:デバッグ体験🔴
/pingにブレークポイント- 叩いて止まる
DateTimeOffset.Nowが毎回変わるのを観察👀
5-10. 小テスト(答えは自分の言葉でOK)🧠✨
- Web API を作るテンプレとして選んだのは何?
- F5 実行と Ctrl+F5 実行の「体感の違い」は?(デバッグできた?)
/pingを2回叩いたとき、何が同じで、何が変わった?🔁
5-11. AI活用(Copilot/Codex)おすすめの使い方🤖💞
使うと爆速になるプロンプト例🪄
- 「
/pingを追加して、現在時刻も返して。Minimal API で。」 - 「OpenAPI の画面で
GET /pingが見えるように、設定も含めて修正して」(Microsoft Learn) - 「ブレークポイントで止める位置と、観察ポイント(Locals/Watch/Call Stack)をコメントで入れて」
AIに任せきりにしないコツ🧷
- 生成されたコードは “どこが入口で、どこが出口か” だけは必ず目で追う👀
- 冪等性は「2回目の動き」が本体なので、ログや保存処理の場所を説明できる状態にするのが大事🔁🧠
参考(この章の内容に直結する公式ページ)📚✨
- .NET 9 / .NET 10 の最新SDK情報(リリース日つき)(Microsoft)
- ASP.NET Core の Minimal API チュートリアル(.NET 10 表示あり)(Microsoft Learn)
dotnet new webapiテンプレの挙動(Minimal API が基本)(Microsoft Learn)- ASP.NET Core の OpenAPI(生成・利用、Scalar など)(Microsoft Learn)