Exercício – Executar seu aplicativo Web localmente

Concluído

Neste exercício, você vai:

  • Execute seu aplicativo Web localmente e exiba-o em um navegador.
  • Examine como o aplicativo Web é servido.

Executar o aplicativo Web e exibir em um navegador

Execute o aplicativo Web no Visual Studio Code e exiba-o em um navegador:

  1. No Visual Studio Code, pressione F5 para executar o aplicativo.

    Visual Studio Code:

    • Dispara o comando dotnet run da CLI do .NET que compila e executa o aplicativo.
    • Anexa o depurador ao aplicativo em execução.

    Na primeira vez que o projeto é executado no Visual Studio Code, a solicitação Selecionar depurador é exibida.

  2. Na solicitação Selecionar depurador na Paleta de Comandos na parte superior da interface do usuário do Visual Studio Code, selecione C#. Na próxima solicitação, selecione a configuração de inicialização padrão (C#: MyWebApp [Default Configuration]):

    Captura de tela da escolha Selecionar depurador na paleta de comandos.

    O navegador padrão é iniciado em http://localhost:{PORT}, que exibe a resposta do aplicativo. O espaço reservado {PORT} é a porta aleatória atribuída na criação do aplicativo. Se você precisar alterar a porta devido a um conflito de porta local, altere a porta no arquivo Propriedades/launchSettings.json do projeto.

    A resposta exibida no navegador:

    Captura de tela de um navegador exibindo a saída de texto.

  3. Feche a janela do navegador.

  4. No Visual Studio:

    • No menu Executar, selecione Parar Depuração.
    • Pressione SHIFT+F5 no teclado.

Execute o aplicativo Web usando a CLI do .NET:

  1. Em um terminal ou na linha de comando, navegue até o diretório de projeto MyWebApp que contém o arquivo MyWebApp.csproj.

  2. Compile e execute o aplicativo com o seguinte comando:

    dotnet run
    

    O projeto é criado, executado e mostra a seguinte saída na linha de comando:

    C:\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.
    

    Como o número da porta na URL fornecida é definido aleatoriamente na configuração na criação do projeto, seu ponto de extremidade pode utilizar um número de porta diferente.

  3. Abra um navegador para a URL gerada em sua própria saída de linha de comando, a resposta Hello World! do aplicativo é exibida:

    Captura de tela de um navegador exibindo a saída de texto.

  4. Para desligar o aplicativo, pressione Ctrl+C na linha de comando.

Como o aplicativo Web é servido

Quando o aplicativo é compilado e executado, as seguintes etapas ocorrem:

Compilação e configuração:

  • O MSBuild é invocado para restaurar dependências e compilar o projeto. O MSBuild processa o arquivo de projeto MyWebApp.csproj e compila o código-fonte em um assembly.
  • O aplicativo lê as configurações, incluindo as configurações especificadas em launchSettings.json para o perfil de inicialização padrão (o primeiro listado).

Configuração do host:

  • O método WebApplication.CreateBuilder em Program.cs configura o host da Web. Por padrão, esse método configura o Kestrel como o servidor Web. O Kestrel é um servidor Web multiplataforma para ASP.NET Core projetado para alto desempenho.
  • O Kestrel começa a escutar solicitações HTTP de entrada nas URLs configuradas, incluindo HTTPS, se especificado.

Tratamento de Solicitações:

  • Quando uma solicitação é recebida, o Kestrel a encaminha para o pipeline de middleware do ASP.NET Core.
  • O pipeline de middleware processa a solicitação por meio de uma série de componentes de middleware, que podem lidar com tarefas como autenticação, registro em log e roteamento.
  • Se a solicitação corresponder a uma rota definida, o ponto de extremidade correspondente será executado. Nesse caso, o ponto de extremidade app.MapGet("/", () => "Hello World!") lida com solicitações para a URL raiz e retorna a cadeia de caracteres Hello World!.

Resposta:

  • A resposta, que nesse caso é a cadeia de caracteres "Olá, Mundo!", é enviada de volta pelo pipeline de middleware para o Kestrel, que a envia de volta para o cliente.