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
BackgroundServiceou 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.Rune timers espalhados por todo lado, com a responsabilidade pela parada indefinida- Dúvida sobre até onde adotar
Host.CreateApplicationBuildereBackgroundService - 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.