Exercício - Execute seu aplicativo Web localmente

Concluído

Neste exercício, irá:

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

Executar o aplicativo Web e exibir em um navegador

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

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

    Código do Visual Studio:

    • Aciona o comando dotnet run .NET CLI que cria e executa o aplicativo.
    • Anexa o depurador ao aplicativo em execução.

    A primeira vez que o projeto é executado no Visual Studio Code, o prompt Select debugger é exibido.

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

    Captura de ecrã da escolha Selecionar depurador na Paleta de comandos.

    O navegador padrão é iniciado em http://localhost:{PORT}, que exibe a resposta do aplicativo. O {PORT} espaço reservado é a porta aleatória atribuída ao aplicativo quando o projeto do aplicativo é criado. 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 browser.

  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. A partir de um terminal ou da linha de comando, navegue até o diretório do projeto MyWebApp que contém o arquivo MyWebApp.csproj .

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

    dotnet run
    

    O projeto é construído, 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 ter um número de porta diferente.

  3. Abra um navegador para o URL gerado na 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 é criado e executado, as seguintes etapas ocorrem:

Construção e configuração:

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

Configuração do anfitrião:

  • O WebApplication.CreateBuilder método em Program.cs configura o host da web. Por padrão, esse método configura o Kestrel como o servidor web. Kestrel é um servidor web multi-plataforma 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 Pedidos:

  • 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 app.MapGet("/", () => "Hello World!") ponto de extremidade manipula solicitações para a URL raiz e retorna a cadeia de caracteres Hello World!.

Resposta:

  • A resposta, que neste caso é a string "Hello World!", é enviada de volta através do pipeline de middleware para o Kestrel, que então a envia de volta para o cliente.