Tutorial: Creación de una aplicación de ASP.NET Core con React en Visual Studio
En este artículo, aprenderá a compilar un proyecto de ASP.NET Core para que actúe como back-end de API y un proyecto de React que actúe como la interfaz de usuario.
Actualmente, Visual Studio incluye plantillas de aplicación de página única (SPA) de ASP.NET Core que admiten Angular y React. Las plantillas proporcionan una carpeta de aplicación cliente integrada en los proyectos de ASP.NET Core que contiene los archivos base y las carpetas de cada marco.
Puede usar el método descrito en este artículo para crear aplicaciones de página única de ASP.NET Core que hacen lo siguiente:
- Colocan la aplicación cliente en un proyecto independiente, fuera del de ASP.NET Core
- Crean el proyecto de cliente en función de la CLI del marco instalado en el equipo
Nota:
En este artículo se describe el proceso de creación de proyectos mediante la plantilla actualizada de Visual Studio 2022, versión 17.8, que usa la CLI de Vite.
Requisitos previos
- Versión 17.8 o posterior de Visual Studio 2022 con la carga de trabajo de desarrollo web y ASP.NET instalada. Vaya a la página de descargas de Visual Studio para instalarlo de forma gratuita. Si tiene que instalar la carga de trabajo y ya tiene Visual Studio, vaya a Herramientas>Get Tools and Features... (Obtener herramientas y características…) que abre el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo de ASP.NET y web y después elija Modificar.
- npm (https://www.npmjs.com/), que se incluye con Node.js
- npx (https://www.npmjs.com/package/npx)
Creación de la aplicación de front-end
En la ventana Inicio, seleccione Crear un proyecto.
Busque React en la barra de búsqueda de la parte superior y, después, seleccione React and ASP.NET Core (Preview) (React y ASP.NET Core (versión preliminar)). Esta es una plantilla de JavaScript.
Asigne el nombre ReactWithASP al proyecto y luego seleccione Crear.
El Explorador de soluciones muestra la siguiente información del proyecto:
En comparación con la plantilla de React independiente, verá algunos archivos nuevos y modificados para la integración con ASP.NET Core:
- vite.config.js
- App.js (modificado)
- App.test.js (modificado)
Seleccione un explorador instalado en la barra de herramientas Depurar, como Chrome o Microsoft Edge.
Si el explorador que desea aún no está instalado, instálelo primero y selecciónelo.
Establecimiento de las propiedades del proyecto
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto ReactWithASP.Server y elija Propiedades.
En la página Propiedades, abra la pestaña Depurar y seleccione la opción Abrir la interfaz de usuario de perfiles de inicio de depuración. Desactive la opción Iniciar explorador del perfil denominado después del proyecto ASP.NET Core (o https, si está presente).
Este valor impide abrir la página web con los datos meteorológicos de origen.
Nota:
En Visual Studio, el archivo launch.json almacena la configuración de inicio asociada al botón Iniciar de la barra de herramientas de depuración. Actualmente, launch.json debe encontrarse en la carpeta .vscode.
Iniciar el proyecto
Para iniciar la aplicación, presione F5 o seleccione el botón Iniciar situado en la parte superior de la ventana. Aparecen dos símbolos del sistema:
El proyecto de API de ASP.NET Core en ejecución
La CLI de Vite que muestra un mensaje como
VITE v4.4.9 ready in 780 ms
Nota:
Compruebe los mensajes en la salida de la consola. Por ejemplo, podría haber un mensaje para actualizar Node.js.
Aparece la aplicación React, rellenada a través de la API. Si no ve la aplicación, consulte Solución de problemas.
Publicación del proyecto
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto ReactWithASP.Server y seleccione Agregar>Referencia del proyecto.
Asegúrese de que el proyecto reactwithasp.client está seleccionado.
Elija Aceptar.
Haga clic con el botón derecho en el proyecto de ASP.NET Core de nuevo y elija Editar archivo de proyecto.
Se abrirá el archivo .csproj para el proyecto.
En el archivo .csproj, asegúrese de la referencia del proyecto incluye un elemento
<ReferenceOutputAssembly>
con el valor establecido enfalse
.Esta referencia debe ser similar a la siguiente.
<ProjectReference Include="..\reactwithasp.client\reactwithasp.client.esproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference>
Haga clic con el botón derecho en el proyecto ASP.NET Core y elija Volver a cargar proyecto si la opción está disponible.
En Program.cs, asegúrese de que el código siguiente está presente.
app.UseDefaultFiles(); app.UseStaticFiles(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
Para publicar, haga clic con el botón derecho en el proyecto de ASP.NET Core, elija Publicar y seleccione las opciones que coincidan con el escenario de publicación deseado, como Azure, publicar en una carpeta, etc.
El proceso de publicación tarda más tiempo que en un proyecto de ASP.NET Core, ya que el comando
npm run build
se invoca al publicar. BuildCommand ejecutanpm run build
de forma predeterminada.
Solución de problemas
Error de proxy
Puede ver el siguiente error:
[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)
Si ve este problema, lo más probable es que el front-end se haya iniciado antes que el back-end. Una vez que vea el símbolo del sistema del back-end en funcionamiento, solo tiene que actualizar la aplicación de React en el explorador.
Comprobación de puertos
Si los datos meteorológicos no se cargan correctamente, es posible que también deba comprobar que los puertos son correctos.
Asegúrese de que los números de puerto coinciden. Vaya al archivo launchSettings.json en el proyecto ASP.NET Core ReactWithASP.Server (en la carpeta Propiedades). Obtenga el número de puerto de la propiedad
applicationUrl
.Si hay varias propiedades
applicationUrl
, busque una con un punto de conexiónhttps
. Tiene un aspecto similar ahttps://localhost:7183
.Abra el archivo vite.config.js para el proyecto de React. Actualice la propiedad
target
para que coincida con la propiedadapplicationUrl
en launchSettings.json. El valor actualizado es similar al siguiente:target: 'https://localhost:7183/',
Error de privacidad
Puede ver el siguiente error de certificado:
Your connection isn't private
Intente eliminar los certificados de React de %appdata%\local\asp.net\https o %appdata%\roaming\asp.net\httpsy vuelva a intentarlo.
Pasos siguientes
Para obtener más información sobre las aplicaciones SPA en ASP.NET Core, consulte la sección React en Desarrollo de aplicaciones de página única. El artículo en el vínculo proporciona contexto adicional para archivos de proyecto como aspnetcore-https.js, aunque los detalles de la implementación son diferentes en función de las diferencias de plantilla. Por ejemplo, en lugar de una carpeta ClientApp, los archivos React se encuentran en un proyecto independiente.
A fin de obtener información específica de MSBuild para el proyecto de cliente, vea Propiedades de MSBuild para JSPS.