.NET AspireのプロジェクトをClaude Codeで開発してみた
概要
.NET で開発をする際に.NET Aspireを使うのはすごく便利です。
C#のコードを書くだけでDB立ち上げたり、フロントエンドとバックエンドの接続の管理とかをAspireに丸投げできるのでC#でこれからWebアプリケーションなどを書く場合はなるべく使っていきたい技術になります。
Aspire自体は.NETの技術ですが、フロントエンドをNext.jsで書いたりする場合にも使えるので全方位敵無しの技術だと思っています。
最近はVibe Codingも流行っているので、実際にClaude Codeを使ってAspireのプロジェクトを作ってみた感想を記載していきたいと思います。
結論
ClaudeのモデルがAspireについてあんまりよくわかっていないので、Microsoft Learn MCPを追加して参照させるといい感じ。
ただ、雑に指示を投げてもやってほしいことをやってくれないことが多々あるので、事前に自分が使う技術の全体象は把握した方がよさそう。
開発の流れ
自分がAspireを使って開発する場合の流れを記載したいと思います。
- 開発したいアプリの設計書をClaude Codeに作ってもらう。
- 設計書をもとにプロジェクト構成の作成
- initを実行し、CLAUDE.mdの内容を更新
- バックエンドから開発をしてもらう
- フロントエンドを開発する
- おそらく結構なバグが出るので会話しながら修正してもらう
1.開発したいアプリの設計書をClaude Codeに作ってもらう
これはAspireに関わらずいろんなアプリで開発してもらうときで有効な手段な気がしています。
自分が作りたいアプリについてClaude Codeに伝えて、不明点があれば聞いてもらうような指示を出します。
この内容をもとに設計書をMarkdownファイルで作成してもらいます。
こうすることで後からどういうことをしたいかというのをClaude Codeに確認してもらうこともできるので、なるべく残しておくことをお勧めします。
/resumeコマンドを使って過去のやり取りを振り返ることもできますが、どうしてもやり取りを繰り返すと忘れることがあるので残しておくことをお勧めしますが、機能追加したときに設計書を更新しないパターンがよくあるので明示的に作ってもらう指示を出しましょう。
また、この時にAspire向けのアーキテクチャ設計をしてもらうためにこのタイミングでMicrosoft Learn MCPで公式情報を参照してもらう指示を必ず出しましょう。この指示を出しておかないと思いもよらぬ構成を作りますので必ず参照する指示を出しておきましょう。
2.設計書をもとにプロジェクト構成の作成
ここから開発になりますが、いきなり全量の開発をすることはお勧めしません。
Claude CodeでC#+Aspireで開発すると結構じゃじゃ馬みたいな挙動をするので、「できました!」って言われても全く動かないことが多々あります。
そのため、プロジェクトだけを作ってもらって依存関係の設定もちゃんとできているかをこのタイミングで確認しましょう。
そうすることで手戻りや確認範囲が分かりやすくなります。
Claude Codeを信用していればこの手順はわざわざ切り出す必要は無いかなと思います。
3.initを実行し、CLAUDE.mdの内容を更新
このタイミングで/initを実行し、CLAUDE.mdを作りましょう。
そうすることでプロジェクトの全体構成をいい感じにClaude Codeが把握してくれる(気がします。)
また、CLAUDE.mdを作成したら「機能追加したらテストコードの実行を必ずする旨を追記して」「タスク完了時にdotnet buildコマンドを必ず実行してビルドエラーが行らないか確認する旨を追記して」など、やってほしいことを書かせましょう。(大量の作業をすると無視することが多いですが、定期的に/clearとかしたらいい感じにやってくれます。Claude Codeは普通に構文間違えるのでbuildはやらせた方がいいと思います。)
4.バックエンドから開発をしてもらう
バックエンドから開発してもらいます。
特に意味は無いですが、フロントから作らせるとダミーデータありきで作るので、バックエンド開発後に結局作り直しに近いことが起こりえます。
そのため個人的にはバックエンドから開発してもらっています。
5.フロントエンドを開発する
ここまできてようやくフロントエンド開発をします。
割とフロントエンド開発は得意な印象で、指示出さないとデフォルトのテンプレートと同じような見た目の開発をするので、「モダンでリッチな感じで」というだけで比較的いい感じに開発してくれる気がします。
フロントエンドでどういう感じにしてほしいかが決まってる人は文字の指示に加えて画像の指示があるといい感じにやってくれると思います。
6.おそらく結構なバグが出るので会話しながら修正してもらう
開発のメインはここだと思います。
全体的にそれっぽいプログラムが出来上がりますが、フロントエンドでアクセスしようとするAPIのパスと、APIで定義しているパスが違うことや、APIで渡すべき情報が不足していることが多々あります。
そのため、エラー内容や何が起こっているかを詳細に伝えてClaude Codeに修正させましょう。
ログについてはちゃんと出力してればAspireの機能でダウンロードが可能なのでダウンロードして渡すのがすごく楽です。

また、パスのミスに対してURIを変えようとしてきます。
せっかくAspireのService Defaults機能があるのに「localhost:{port}」を直接指定してきます。
それをちゃんと監視して「MS Learnを確認してService Defautlsで接続するようにして」とクレームを入れないと、本番展開時に痛い目に合うと思います。
MS LearnのMCPをメインで使うのは最初の設計書作成時とバグ修正時に細かく指定してあげるといい感じに修正してくれます。
基本的には「accept edits on」モードでいいと思いますが、結構変なことしてるなって思ったら「plan mode on」でやるとやばいことをする前にこっちでレビューできるのでプランモードを使用すべきところはどこかの勘所を探していきましょう。だんだんわかってくると思います。
まとめ
.NET AspireのプロジェクトをClaude Codeで書く時の感想と流れをまとめてみました。
.NET Aspire便利なんですが、情報を発信してる人がほかの有名フレームワークに比べて少なく新しめのフレームワークというのもあり、LLMのモデルがあんまり理解してない印象です。
その穴を埋めるためにMS Learn MCPを有効化して参照させるようにするのがおすすめです。
とはいえ結構明示的に指定しないとMCP使ってくれないことが多いのでユーザー自身も使う技術についての勉強をする必要がありますので勉強頑張っていきましょう。
また、Aspire自体がこの面倒くささを考慮してもめちゃくちゃ便利なフレームワークなのでみんな使ってほしいなーって思います。
Discussion