ASP .NET Core 3.1 - Host Genérico
Neste artigo vou apresentar o Host Genérico usado nas aplicações ASP .NET Core a partir da versão 3.0. |
|
Os templates da ASP .NET Core criam um Host Genérico HostBuilder que é um utilizado para inicialização do programa.
O host é um objeto que encapsula os recursos de um aplicativo, como:
A definição do host esta presente na classe Program que configura a infraestrutura do aplicativo como host da Web, log, contêiner de injeção de dependência, integração com o IIS etc.
O host é configurado, criado e executado na classe Program no método Main() onde é chamado o método CreateHostBuilder para criar e configurar um objeto do construtor que chama os métodos Build e Run:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
|
Obs: Se sua aplicação for usar o Entity Framework Core, não altere o nome ou a assinatura do método CreateHostBuilder pois as ferramentas do Entity Framework Core esperam encontrar um método CreateHostBuilder que configure o host sem executar o aplicativo.
Quando um host é iniciado, ele chama o método IHostedService.StartAsync em cada implementação de IHostedService que encontra no contêiner de DI. Em uma aplicação Web, uma das implementações de IHostedService é um serviço Web que inicia uma implementação de servidor HTTP.
A execução do método CreateHostBuilder aciona o método CreateDefaultBuilder que realiza as seguintes tarefas:
E o método ConfigureWebHostDefaults faz o seguinte:
Na inicalização os seguintes serviços são registrados de forma automática:
Assim, o host é criado e configurado, mas antes de criar e executar, precisamos configurar ainda mais com o aplicativo e fazemos isso na classe Startup. Nós informamos ao construtor o local da classe de inicialização usando o método : webBuilder.UseStartup<Startup>();
A classe Startup contém dois métodos :
Dessa forma o método Main da classe Program é o ponto de entrada do nosso aplicativo. Ele configura e constrói o host da Web que é responsável por executar nosso aplicativo.
A maior parte do pipeline necessário para configurar o host já foi feita para nós no método CreateDefaultBuilder, que é chamado no método Main.
A partir dai podemos adicionar uma configuração personalizada na classe Startup que vai depender do projeto usado.
E estamos conversados...
"Foge também das paixões da mocidade; e segue a justiça, a
fé, o amor, e a paz com os que, com um coração puro, invocam o Senhor."
2 Timóteo 2:22
Referências:
ASP .NET Core - Implementando a segurança com .
ASP.NET Core MVC - Criando um Dashboard ..
C# - Gerando QRCode - Macoratti
ASP .NET - Gerando QRCode com a API do Google
ASP .NET Core - Iniciando com o Blazor
ASP .NET Core - CRUD usando Blazor e Entity