Kurz: Vytvoření aplikace ASP.NET Core pomocí Reactu v sadě Visual Studio
V tomto článku se dozvíte, jak vytvořit projekt ASP.NET Core tak, aby fungoval jako back-end rozhraní API a projekt React, který bude fungovat jako uživatelské rozhraní.
Visual Studio v současné době obsahuje šablony jednostránkové aplikace (SPA) ASP.NET Core, které podporují Angular a React. Šablony poskytují integrovanou složku klientské aplikace v projektech ASP.NET Core, které obsahují základní soubory a složky každé architektury.
Metodu popsanou v tomto článku můžete použít k vytvoření ASP.NET základních jednostrákových aplikací, které:
- Umístěte klientskou aplikaci do samostatného projektu mimo projekt ASP.NET Core.
- Vytvoření klientského projektu na základě rozhraní příkazového řádku nainstalovaného na vašem počítači
Poznámka:
Tento článek popisuje proces vytváření projektu pomocí aktualizované šablony v sadě Visual Studio 2022 verze 17.8, která používá rozhraní příkazového řádku Vite.
Požadavky
- Visual Studio 2022 verze 17.8 nebo novější s nainstalovanou úlohou ASP.NET a vývoje webu Přejděte na stránku pro stažení sady Visual Studio a nainstalujte ji zdarma. Pokud potřebujete nainstalovat úlohu a už visual Studio máte, přejděte na Nástroje>Get Tools and Features..., čímž se otevře Instalační program pro Visual Studio. Zvolte ASP.NET a úlohu vývoje webu a pak zvolte Upravit.
- npm (https://www.npmjs.com/), který je součástí Node.js
- npx (https://www.npmjs.com/package/npx)
Vytvoření front-endové aplikace
V okně Start vyberte Vytvořit nový projekt.
Na panelu hledání v horní části vyhledejte React a pak vyberte React a ASP.NET Core (Preview). Tato šablona je javascriptová šablona.
Pojmenujte projekt ReactWithASP a pak zvolte Vytvořit.
Průzkumník řešení zobrazí následující informace o projektu:
V porovnání se samostatnou šablonou React uvidíte několik nových a upravených souborů pro integraci s ASP.NET Core:
- vite.config.js
- App.js (změněno)
- App.test.js (změněno)
Na panelu nástrojů Ladění vyberte nainstalovaný prohlížeč, například Chrome nebo Microsoft Edge.
Pokud požadovaný prohlížeč ještě není nainstalovaný, nejprve nainstalujte prohlížeč a vyberte ho.
Nastavení vlastností projektu
V Průzkumník řešení klikněte pravým tlačítkem myši na projekt ReactWithASP.Server a zvolte Vlastnosti.
Na stránce Vlastnosti otevřete kartu Ladění a vyberte možnost Otevřít spouštěcí profily ladění uživatelského rozhraní . Zrušte zaškrtnutí políčka Spustit prohlížeč pro profil pojmenovaný po projektu ASP.NET Core (nebo https, pokud je k dispozici).
Tato hodnota brání otevření webové stránky se zdrojovými daty o počasí.
Poznámka:
V sadě Visual Studio launch.json uloží nastavení spouštění přidružená k tlačítku Start na panelu nástrojů Ladění. V současné době musí být launch.json umístěn ve složce .vscode.
Spuštění projektu
Stisknutím klávesy F5 nebo výběrem tlačítka Start v horní části okna spusťte aplikaci. Zobrazí se dva příkazové řádky:
Spuštěný projekt rozhraní API ASP.NET Core
Rozhraní příkazového řádku Vite zobrazující zprávu, například
VITE v4.4.9 ready in 780 ms
Poznámka:
Zkontrolujte výstup konzoly pro zprávy. Může se například zobrazit zpráva o aktualizaci Node.js.
Zobrazí se aplikace React a naplní se prostřednictvím rozhraní API. Pokud aplikaci nevidíte, přečtěte si téma Řešení potíží.
Publikování projektu
V Průzkumník řešení klikněte pravým tlačítkem na projekt ReactWithASP.Server a vyberte Přidat>odkaz na projekt.
Ujistěte se, že je vybraný projekt reactwithasp.client .
Vyberte OK.
Znovu klikněte pravým tlačítkem na projekt ASP.NET Core a vyberte Upravit soubor projektu.
Tím se otevře soubor .csproj projektu.
V souboru .csproj se ujistěte, že odkaz na projekt obsahuje
<ReferenceOutputAssembly>
prvek s hodnotou nastavenou nafalse
.Tento odkaz by měl vypadat takto.
<ProjectReference Include="..\reactwithasp.client\reactwithasp.client.esproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference>
Klikněte pravým tlačítkem na projekt ASP.NET Core a pokud je tato možnost dostupná, zvolte Znovu načíst projekt .
V Program.cs se ujistěte, že je k dispozici následující kód.
app.UseDefaultFiles(); app.UseStaticFiles(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
Pokud chcete publikovat, klikněte pravým tlačítkem na projekt ASP.NET Core, zvolte Publikovat a vyberte možnosti, které odpovídají požadovanému scénáři publikování, jako je Azure, publikování do složky atd.
Proces publikování trvá déle, než to dělá jenom u projektu ASP.NET Core, protože se
npm run build
příkaz vyvolá při publikování. BuildCommand se spouštínpm run build
ve výchozím nastavení.
Řešení problému
Chyba proxy serveru
Může se zobrazit následující chyba:
[HPM] Error occurred while trying to proxy request /weatherforecast from localhost:4200 to https://localhost:7183 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
Pokud se zobrazí tento problém, pravděpodobně front-end začal před back-endem. Jakmile se zobrazí příkazový řádek back-endu, stačí aktualizovat aplikaci React v prohlížeči.
Ověření portů
Pokud se data o počasí nenačítají správně, možná budete muset ověřit, jestli jsou porty správné.
Ujistěte se, že se čísla portů shodují. Přejděte na spouštěcí soubor Nastavení.json v projektu ASP.NET Core ReactWithASP.Server (ve složce Vlastnosti). Získá číslo portu z
applicationUrl
vlastnosti.Pokud existuje více
applicationUrl
vlastností, vyhledejte jednu z nich pomocí koncovéhohttps
bodu. Vypadá podobně jakohttps://localhost:7183
.Otevřete soubor vite.config.js pro projekt React.
target
Aktualizujte vlastnost tak, aby odpovídalaapplicationUrl
vlastnosti při spuštění Nastavení.json. Aktualizovaná hodnota vypadá nějak takto:target: 'https://localhost:7183/',
Chyba ochrany osobních údajů
Může se zobrazit následující chyba certifikátu:
Your connection isn't private
Zkuste odstranit certifikáty React z %appdata%\local\asp.net\https nebo %appdata%\roaming\asp.net\https a pak to zkuste znovu.
Další kroky
Další informace o aplikacích SPA v ASP.NET Core najdete v části React v části Vývoj jednostránkové aplikace. Propojený článek poskytuje další kontext pro soubory projektu, jako je aspnetcore-https.js, i když podrobnosti implementace se liší na základě rozdílů šablony. Například místo složky ClientApp jsou soubory React obsažené v samostatném projektu.
Informace o nástroji MSBuild specifické pro klientský projekt naleznete v tématu VLASTNOSTI NÁSTROJE MSBuild pro JSPS.