Tópico

Generic Host / tema de projeto de aplicativos

Tópico de arquitetura de aplicativos .NET para acompanhar num só lugar Generic Host, BackgroundService, DI, configuração, logs e o projeto de inicialização e parada.

O que este tema ajuda a organizar

Quando um aplicativo .NET cresce um pouco, Main, Program.cs, a inicialização de formulários, o processamento residente, a leitura de configuração e a inicialização de logs tendem a se espalhar. Este tema serve para acompanhar num só lugar, em torno do Generic Host, como projetar a inicialização e a parada do aplicativo como um todo.

  • Onde conectar DI, configuração e logs
  • Quem é responsável pelo ciclo de vida de um BackgroundService ou de outro processamento residente
  • Como tratar o graceful shutdown e o flush na parada
  • Como organizar o processamento que fica fora da UI

Questões comuns nas consultas

  • Task.Run e timers espalhados por todo lado, com a responsabilidade pela parada indefinida
  • Dúvida sobre até onde adotar Host.CreateApplicationBuilder e BackgroundService
  • Necessidade de alinhar a base de aplicativos de console, de worker e de desktop
  • Ligar configuração, logs e DI aos poucos, depois do fato, é penoso

Abordagem recomendada

Com o Generic Host, decorar apenas os nomes das APIs ajuda pouco; fica mais fácil organizar olhando em conjunto inicialização, ciclo de vida e divisão de responsabilidades. Usando os três artigos relacionados como porta de entrada e consultando também as páginas de desenvolvimento de aplicativos Windows e de revisão de projeto, fica claro até onde vale adotar o host.

Consulte-nos

Se esta página se aproxima da situação que você enfrenta, consulte-nos informando o contexto atual e o tipo de apoio de que precisa.

Voltar ao início