Visual StudioでASP.NET Core + Reactアプリを作成する最新ポイント|2026年4月更新の実務チェック

Visual StudioでASP.NET Core + Reactアプリを作る場合、2026年4月時点で押さえるべき結論はシンプルです。現在の公式チュートリアル「Create an ASP.NET Core app with React – Visual Studio (Windows)」は、ASP.NET CoreをAPIバックエンド、ReactをUIとして分離した構成を前提にし、React側はVite CLIを使う流れになっています。特に、Visual Studio 2022 version 17.11以降、Node.js/npm、vite.config.js、複数スタートアッププロジェクト、発行時のnpm run buildが重要な確認ポイントです。(Microsoft Learn)

なお、GitHub上の履歴では2026年4月24日に2件の変更が確認できますが、内容は「自動挿入されるメタデータの削除」と「ownership updates for bill」で、本文の手順そのものを大きく変える機能追加ではありません。一方、Microsoft Learnのページ本文とGitHub上のms.dateは2026年3月24日表記です。したがって、実務上は「4月24日に公式ソースの管理更新はあったが、開発者が見るべき技術的な更新ポイントは3月時点のVite対応・トラブルシューティング・発行手順にある」と理解するのが安全です。(GitHub)

目次

Visual Studioの最新動向: Create an ASP.NET Core app with React – Visual Studio (Windows)で何が変わったか

今回の公式チュートリアルで最も重要なのは、「ASP.NET Coreプロジェクトの中にReactを単純に同居させる」理解から、「バックエンドとフロントエンドを分離し、Visual Studio上で統合して扱う」理解へ切り替えることです。

公式ページでは、ASP.NET CoreプロジェクトをAPIバックエンド、ReactプロジェクトをUIとして構築する手順が説明されています。Visual StudioにはAngularとReactをサポートするASP.NET Core SPAテンプレートが含まれており、この手順ではクライアントアプリをASP.NET Coreプロジェクトの外側にある別プロジェクトとして配置できます。(Microsoft Learn)

開発者にとっては、単なる新規作成チュートリアルではありません。チーム開発、CI/CD、Docker、Azureへの発行、Node.jsのバージョン管理まで含めて、フロントエンドとバックエンドをどう統合管理するかを見直す材料になります。

確認ポイント2026年4月時点での見方実務上の影響
更新日GitHub履歴では2026年4月24日の管理更新、ページ本文のms.dateは2026年3月24日4月24日を「大きな手順変更」と断定しない
テンプレートVisual Studio 2022 version 17.11以降の更新テンプレート古いVisual Studioでは同じ手順にならない可能性がある
React側のツールVite CLIを使用CRA前提の古い知識をそのまま使わない
構成ASP.NET Core API + React UIの分離構成DevOpsや基盤チームがビルド・発行設計を確認しやすい
発行ASP.NET Core発行時にnpm run buildが実行されるCI/CDの所要時間とNode.js環境を考慮する

今回の記事で押さえるべき最大のポイントはVite対応

公式チュートリアルでは、Visual Studio 2022 version 17.11の更新テンプレートがVite CLIを使用すると説明されています。ViteはReactのバージョンを直接固定するものではなく、package.jsonなどのプロジェクト依存関係からReactのバージョンが決まるという説明も含まれています。(Microsoft Learn)

これは、過去にCreate React App(CRA)前提でASP.NET Core + Reactを理解していた開発者ほど注意すべき点です。Viteベースになると、開発サーバー、プロキシ設定、ビルドコマンド、依存関係管理の見方が変わります。

たとえば、以前のReact SPAテンプレートの知識だけで「ClientAppフォルダーを探す」「CRAの起動方法を前提にする」と、現在のVisual Studioテンプレートでは混乱しやすくなります。最新のASP.NET Core SPAテンプレートは、フロントエンドとバックエンドのクリーンな分離、Viteなどの最新フロントエンドCLIとの統合、JavaScriptビルドツールと.NETビルドの統合を利点として説明しています。(Microsoft Learn)

対象読者別に見る実務インパクト

この更新ポイントは、単に「Visual StudioでReactアプリを作る手順が変わった」という話ではありません。開発者、DevOpsエンジニア、プラットフォームチームで見るべき観点が異なります。

読者注目すべきポイント次に確認すべきこと
アプリ開発者ReactとASP.NET Coreが別プロジェクトとして扱われるvite.config.jsとAPI呼び出し先の設定を確認する
DevOpsエンジニア発行時にnpm run buildが実行されるCI/CD環境にNode.js/npmを用意する
プラットフォームチームVisual Studio、Node.js、テンプレートのバージョン差異が影響する標準開発環境のバージョンを明文化する
テックリードSSR向けテンプレートではないNext.jsなどが必要な要件か事前に判断する
グローバルチームMicrosoft Learnの英語版と日本語版で表現差がある原文とGitHub履歴を併用して確認する

特にDevOpsでは、ASP.NET Coreだけをビルド・発行すれば完了するという前提が危険です。公式チュートリアルでは、発行プロセスでnpm run buildが呼び出されるため、通常のASP.NET Coreプロジェクトより時間がかかると説明されています。(Microsoft Learn)

Visual StudioでASP.NET Core + Reactアプリを作る基本手順

公式手順の流れは、Visual Studio上でテンプレートを選択し、ASP.NET Core APIバックエンドとReact UIを含むソリューションを作成するものです。

前提条件を確認する

まず、Visual Studio 2022 version 17.11以降と「ASP.NET and web development」ワークロードが必要です。また、npmが必要で、npmはNode.jsに含まれます。(Microsoft Learn)

実務では、次のようにチーム標準を決めておくとトラブルを減らせます。

項目推奨する確認方法よくある失敗
Visual StudioVisual Studio Installerでバージョンとワークロードを確認テンプレートが表示されない
Node.js/npmnode -v、npm -vで確認Vite起動時にバージョン警告が出る
HTTPS設定プロジェクト作成時にHTTPS構成を有効化API呼び出しや証明書でつまずく
ブラウザーEdgeまたはChromeをデバッグ対象にする未インストールのブラウザーを選んで起動できない

React and ASP.NET Coreテンプレートを選ぶ

Visual Studioのスタート画面から「Create a new project」を選び、検索バーでReactを検索します。その後、「React and ASP.NET Core」を選択します。公式チュートリアルでは、このテンプレートはJavaScriptテンプレートとして説明されています。(Microsoft Learn)

プロジェクト名の例としてはReactWithASPが使われていますが、実務では命名規則を事前に決めておくことをおすすめします。たとえば、バックエンドがProductApi.Server、フロントエンドがProductPortal.Clientのように分かる名前にすると、CI/CDやログ設計でも扱いやすくなります。

作成後に見るべきファイル

公式チュートリアルでは、スタンドアロンReactテンプレートと比較して、ASP.NET Coreとの統合用にvite.config.jsと変更済みのApp.jsxが確認できると説明されています。(Microsoft Learn)

特にvite.config.jsは重要です。APIバックエンドへのプロキシ設定やポートの不一致があると、Reactの画面は開いているのにAPIデータが表示されない状態になります。

起動設定で重要なのは複数プロジェクトの開始順序

ASP.NET Core + React構成では、バックエンドとフロントエンドの両方を起動する必要があります。公式チュートリアルでは、ソリューションのプロパティでスタートアッププロジェクトを「Multiple projects」にし、両方のプロジェクトのActionをStartに設定することを確認するよう説明しています。(Microsoft Learn)

ここで起きやすい問題は、フロントエンドが先に起動し、まだ立ち上がっていないASP.NET Core APIにアクセスしてプロキシエラーになるケースです。

実務では、次の順序で確認すると効率的です。

順番確認する場所判断基準
1ソリューションのプロパティ複数プロジェクト起動になっている
2起動順序ASP.NET Core ServerがReact Clientより先
3デバッグプロファイル不要なブラウザー起動が無効化されている
4コンソール出力ASP.NET Core APIとVite CLIの両方が起動している
5ブラウザーReact画面にAPI由来のデータが表示される

F5またはStartボタンで起動すると、ASP.NET Core APIプロジェクトとVite CLIの2つのコマンドプロンプトが表示されます。ReactアプリはAPI経由でデータを取得するため、画面だけでなくAPI通信まで確認することが大切です。(Microsoft Learn)

発行時はASP.NET CoreだけでなくReactビルドも見る

このチュートリアルで見落としやすいのが発行手順です。

公式チュートリアルでは、ASP.NET Coreプロジェクト側にReactクライアントプロジェクトへの参照を追加し、.csproj内のProjectReferenceに<ReferenceOutputAssembly>false</ReferenceOutputAssembly>を含める手順が示されています。さらに、Program.csにapp.UseDefaultFiles();とapp.UseStaticFiles();が存在することも確認対象です。(Microsoft Learn)

<ProjectReference Include="..\reactwithasp.client\reactwithasp.client.esproj">
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>

この設定は、Reactクライアントを.NETアセンブリとして参照するのではなく、発行プロセスの一部として扱うためのものです。ここを理解せずに削除すると、ローカル開発では動くのに発行後に静的ファイルが含まれない、という問題につながります。

app.UseDefaultFiles();
app.UseStaticFiles();

UseDefaultFilesとUseStaticFilesは、発行後にReact側の静的ファイルを配信するうえで重要です。APIだけを提供する構成に変更する場合でも、同一ホストでReactを配信するなら確認しておくべきポイントです。

CI/CDで注意すべきポイント

DevOpsエンジニアやプラットフォームチームが見るべきなのは、「Visual Studioから発行できるか」だけではありません。パイプライン上で同じ結果を再現できるかが重要です。

特に、発行時にnpm run buildが呼び出される点は、ビルドエージェントの設計に直結します。Node.jsが入っていないWindowsビルドエージェント、npmキャッシュが使えない環境、社内プロキシでnpmレジストリに到達できない環境では、ASP.NET Core側に問題がなくても発行に失敗します。

CI/CD項目確認内容失敗しやすい例
Node.jsビルドエージェントにインストールされているかローカルでは成功、パイプラインで失敗
npm install社内プロキシ・証明書・レジストリ設定npmパッケージ取得でタイムアウト
npm run buildReact側のビルドが通るかTypeScript/ESLint/環境変数で失敗
.NET publishReactビルド成果物が含まれるかAPIだけ発行されUIが表示されない
キャッシュnpmキャッシュやNuGetキャッシュ毎回ビルドが遅い
環境変数API URLやモードが正しいか本番でlocalhostを参照する

ローカルのVisual Studio操作だけで完結させず、早い段階でCI上のdotnet publishまで確認するのが安全です。特にグローバルチームでは、開発者のPC環境差よりも、標準化されたビルドエージェント上で再現できるかを優先してください。

トラブルシューティングで見るべき3つの症状

公式チュートリアルには、Node.jsまたはテンプレートが古い場合、プロキシエラー、ポート不一致、証明書エラー、Docker利用時のHTTPSポート確認といったトラブルシューティングが含まれています。(Microsoft Learn)

Node.jsまたはテンプレートが古い

チュートリアルでは、他の箇所で説明されていない問題が起きる場合、Node.jsを現在のバージョンに更新し、Visual Studioを更新して最新テンプレートを取得することが推奨されています。(GitHub)

ただし、実務では「全員が即最新にする」よりも、チームで検証済みのバージョンを決める方が安全です。フロントエンド依存関係は更新で挙動が変わることがあるため、Node.jsのLTS系を基準にし、package-lock.jsonをリポジトリで管理する運用が現実的です。

プロキシエラーが出る

公式チュートリアルでは、/weatherforecastへのプロキシ要求でECONNREFUSEDが出る例が示されています。この場合、フロントエンドがバックエンドより先に起動した可能性が高く、バックエンド起動後にブラウザーを更新する、またはバックエンドが先に起動するよう起動順序を確認する流れです。(Microsoft Learn)

このエラーを見たときに、すぐCORS設定を疑うのは早計です。まずは次の順番で切り分けます。

症状先に確認すること次に確認すること
ECONNREFUSEDASP.NET Core APIが起動しているか起動順序
データだけ表示されないvite.config.jsのtargetlaunchSettings.jsonのHTTPS URL
404が返るAPIエンドポイント名React側のfetchパス
CORSエラー同一プロキシ経由かAPI側のCORS設定

ポートが一致しない

公式チュートリアルでは、天気データが正しく読み込まれない場合、ASP.NET CoreプロジェクトのlaunchSettings.jsonにあるapplicationUrlと、Reactプロジェクトのvite.config.jsにあるtargetを一致させるよう説明されています。(Microsoft Learn)

たとえば、launchSettings.jsonが次のような値を持っている場合です。

"applicationUrl": "https://localhost:7183"

vite.config.js側のtargetも同じHTTPSポートに合わせます。

target: 'https://localhost:7183/'

ここでHTTPとHTTPS、末尾スラッシュ、ポート番号の差異があると、画面表示とAPI呼び出しのどちらかだけが失敗することがあります。

Docker利用時はHTTPSポートを必ず確認する

Dockerサポートを有効にしてプロジェクトを作成した場合、公式チュートリアルではVisual StudioのContainersウィンドウでDocker HTTPSポートを取得し、vite.config.jsのtarget変数をそのポートに合わせるよう説明されています。(Microsoft Learn)

Docker利用時にありがちな失敗は、ローカル実行時のポートとコンテナー実行時のポートを混同することです。特に、ASPNETCORE_HTTPS_PORTが見つからない場合は、launchSettings.jsonにsslPortを手動で追加する説明もあります。(Microsoft Learn)

プラットフォームチームは、テンプレートから作成したアプリをそのまま本番Docker化するのではなく、次の項目を標準化しておくとよいでしょう。

項目標準化する理由
コンテナー内外のポート設計開発環境とCI環境で接続先がずれないようにする
HTTPS証明書の扱いローカル証明書と本番証明書を混同しない
環境変数名Vite側とASP.NET Core側で参照値をそろえる
ヘルスチェックUI表示だけでなくAPI疎通も確認する
ログ出力Reactビルド失敗とAPI起動失敗を切り分ける

SSRや本格的なフロントエンド基盤には向かない場合がある

ASP.NET Core + Reactテンプレートは便利ですが、すべてのReactアプリに最適ではありません。

公式のASP.NET Core SPA関連ドキュメントでは、Reactテンプレートはサーバーサイドレンダリング(SSR)向けではなく、SSRが必要な場合はNext.jsなどを検討する説明があります。(Microsoft Learn)

そのため、次のような要件がある場合は、Visual Studioテンプレートをそのまま使うか慎重に判断してください。

要件テンプレート適性判断
社内業務アプリ高いAPI + React UI構成で始めやすい
管理画面高い認証・API・画面を分離しやすい
小規模PoC高いVisual Studioだけで初期構成を作りやすい
SEO重視の公開サイト低〜中SSR/SSGが必要ならNext.jsなどを検討
大規模フロントエンド組織中フロントエンドを完全独立リポジトリにする選択肢もある
マイクロフロントエンド低〜中専用の設計方針が必要

Visual Studioテンプレートは「ASP.NET Coreを中心にReact UIを統合する」には便利です。一方で、フロントエンド主導のプロダクトやSEO重視のWebサイトでは、Next.jsなどを別に採用し、ASP.NET CoreはAPI専用にする構成の方が適している場合があります。

古いASP.NET Core SPAテンプレートとの違い

Microsoft LearnのASP.NET Core SPAテンプレート関連ページでは、以前の.NET SDKに含まれていたSPAテンプレートはレガシ扱いとして説明されています。現在のVisual Studioテンプレートは、JavaScript/TypeScriptフロントエンドを使うASP.NET Coreアプリ向けに、フロントエンドとバックエンドの分離、最新CLIとの統合、npm依存関係管理UIなどを利点として示しています。(Microsoft Learn)

古い記事や社内ナレッジを参照している場合は、次の点を見直してください。

古い前提現在確認すべき前提
CRAベースで考えるViteベースのテンプレートか確認する
ClientApp配下だけを見る別プロジェクト構成か確認する
.NET SDKのSPAテンプレートを前提にするVisual StudioのReact and ASP.NET Coreテンプレートを確認する
APIとUIを単一プロジェクト感覚で扱うAPIバックエンドとReact UIを分離して管理する
発行は.NETだけと考えるnpm run buildを含めて設計する

この違いを理解せずに移行すると、プロキシ設定、ビルド、発行、Dockerで問題が起きやすくなります。

実務でおすすめの導入手順

新規プロジェクトでこのテンプレートを使う場合は、公式チュートリアルをなぞるだけで終わらせず、最初の1日で運用に必要な確認まで済ませるのがおすすめです。

フェーズ実施内容完了条件
環境準備Visual Studio、Node.js/npm、ワークロードを確認テンプレートが表示される
プロジェクト作成React and ASP.NET Coreを選択Server/Client構成を確認できる
ローカル起動F5でAPIとViteを起動React画面にAPIデータが表示される
設定確認launchSettings.jsonとvite.config.jsを確認HTTPSポートが一致する
発行確認フォルダー発行またはAzure発行を試すReactビルド成果物が含まれる
CI確認パイプラインでdotnet publishを実行Node/npm込みで成功する
チーム標準化バージョン、ポート、環境変数を文書化新メンバーが再現できる

小さなPoCでも、発行まで試しておくことが重要です。ローカルでF5起動できても、発行時にnpmビルドが失敗するケースは珍しくありません。

2026年4月更新ポイントを踏まえたチェックリスト

最後に、今回の公式ソース更新を踏まえて、開発チームが確認すべき項目を整理します。

チェック項目確認済み
Microsoft Learnページの本文更新日とGitHub履歴の差を理解している□
Visual Studio 2022 version 17.11以降を使っている□
「ASP.NET and web development」ワークロードが入っている□
Node.js/npmがチーム標準バージョンでそろっている□
React側がVite CLI前提であることを理解している□
vite.config.jsのAPIターゲットを確認した□
launchSettings.jsonのHTTPSポートを確認した□
複数スタートアッププロジェクトの順序を確認した□
発行時にnpm run buildが実行されることを確認した□
CI/CD環境にNode.js/npmを用意した□
Docker利用時のHTTPSポートを確認した□
SSRが必要な場合にNext.jsなど別構成を検討した□

Visual Studioの「Create an ASP.NET Core app with React – Visual Studio (Windows)」は、ASP.NET CoreとReactを素早く統合するための実用的な入口です。ただし、2026年4月時点で見るべき本質は、4月24日の管理更新そのものではなく、Viteベースの分離構成、起動順序、ポート設定、発行時のReactビルドを正しく理解することです。

まずは公式テンプレートで最小構成を作成し、F5起動、API疎通、フォルダー発行、CI上のdotnet publishまで一通り確認してください。そこまで通れば、開発者だけでなくDevOpsエンジニアやプラットフォームチームも、ASP.NET Core + React構成をチーム標準として扱いやすくなります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次