Ejercicio: ejecución local de la aplicación web
En este ejercicio, aprenderá a:
- Ejecute la aplicación web localmente y visualícela en un explorador.
- Revise cómo se sirve la aplicación web.
Ejecución de la aplicación web y vista en un explorador
Ejecute la aplicación web en Visual Studio Code y véala en un explorador:
En Visual Studio Code, presione F5 para ejecutar la aplicación.
Visual Studio Code:
- Se desencadena el comando de la CLI de .NET
dotnet run
que compila y ejecuta la aplicación. - Asocia el depurador a la aplicación en ejecución.
La primera vez que se ejecuta el proyecto en Visual Studio Code, se muestra la indicación Seleccionar depurador.
- Se desencadena el comando de la CLI de .NET
En la indicación Seleccionar depurador de la Paleta de comandos en la parte superior de la interfaz de usuario de Visual Studio Code, seleccione C#. En la siguiente indicación, seleccione la configuración de inicio predeterminada (
C#: MyWebApp [Default Configuration]
):El explorador predeterminado se inicia en
http://localhost:{PORT}
, que muestra la respuesta de la aplicación. El marcador de posición{PORT}
es el puerto aleatorio asignado a la aplicación cuando se crea el proyecto de la aplicación. Si necesita cambiar el puerto debido a un conflicto de puerto local, cambie el puerto en el archivo del proyecto Properties/launchSettings.json.Respuesta que se muestra en el explorador:
Cierra la ventana del explorador.
En Visual Studio, tiene distintas opciones:
- En el menú Ejecutar, seleccione Detener depuración.
- Presiona Mayús+F5 en el teclado.
Crear la aplicación web mediante la CLI de .NET:
Desde un terminal o la línea de comandos, vaya al directorio del proyecto MyWebApp que contiene el archivo myWebApp.csproj.
Compilar y ejecutar la aplicación con el siguiente comando:
CLI de .NETdotnet run
El proyecto se compila y se ejecuta, y se muestra la salida siguiente en la línea de comandos:
OutputC:\MyWebApp> dotnet run Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5267 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down.
Dado que el número de puerto de la dirección URL proporcionada se establece aleatoriamente en la configuración en la creación del proyecto, el punto de conexión puede tener un número de puerto diferente.
Abra un explorador en la dirección URL generada en la salida de la línea de comandos propia; se muestra la respuesta de la aplicación
Hello World!
:Presione Ctrl+C en la línea de comandos para apagar la aplicación.
Cómo se sirve la aplicación web
Cuando se compila y se ejecuta la aplicación, se producen los pasos siguientes:
Compilación y configuración:
- MSBuild se invoca para restaurar dependencias y compilar el proyecto. MSBuild procesa el archivo de proyecto MyWebApp.csproj y compila el código fuente en un ensamblado.
- La aplicación lee las opciones de configuración, incluidas las especificadas en launchSettings.json para el perfil de inicio predeterminado (la primera enumerada).
Configuración del host:
- El método
CreateHostBuilder
de Program.cs configura el host web. De forma predeterminada,WebHostBuilder
configura Kestrel como servidor web. Kestrel es un servidor web multiplataforma para ASP.NET Core diseñado para un alto rendimiento. - Kestrel comienza a escuchar las solicitudes HTTP entrantes en las direcciones URL configuradas, incluido HTTPS si se especifica.
Gestión de solicitudes:
- Cuando se recibe una solicitud, Kestrel la reenvía a la canalización de middleware de ASP.NET Core.
- La canalización de middleware procesa la solicitud a través de una serie de componentes de middleware, que pueden controlar tareas como la autenticación, el registro y el enrutamiento.
- Si la solicitud coincide con una ruta definida, se ejecuta el punto de conexión correspondiente. En este caso, el punto de conexión de
app.MapGet("/", () => "Hello World!")
controla las solicitudes a la dirección URL raíz y devuelve la cadenaHello World!
.
Respuesta:
- La respuesta, que en este caso es la cadena "Hello World!" (Hola mundo), se devuelve a través de la canalización de middleware a Kestrel, que luego la devuelve al cliente.