Téma

Téma: Generic Host / návrh aplikácií

Téma o architektúre aplikácií .NET, v ktorej na jednom mieste nájdete Generic Host, BackgroundService, DI, konfiguráciu, logovanie a návrh spustenia a ukončenia.

Čo chceme pri tejto téme upresniť

Keď aplikácia v .NET trochu vyrastie, Main, Program.cs, inicializácia formulárov, trvalo bežiace spracovanie, načítavanie konfigurácie a inicializácia logovania sa začnú rozchádzať. Táto téma slúži ako jedno miesto, kde sa pomocou Generic Host sleduje, ako navrhnúť spustenie a ukončenie celej aplikácie.

  • kde prepojiť DI, konfiguráciu a logovanie
  • kto zodpovedá za životný cyklus BackgroundService a trvalo bežiaceho spracovania
  • ako riešiť riadené ukončenie (graceful shutdown) a vyprázdnenie dát pri zastavení
  • ako usporiadať spracovanie mimo používateľského rozhrania

Otázky, ktoré sa pri konzultáciách objavujú často

  • Task.Run a časovače sú roztrúsené po celom kóde a nie je jasné, kto zodpovedá za zastavenie
  • nevieme, ako ďaleko má zájsť nasadenie Host.CreateApplicationBuilder a BackgroundService
  • chceme zosúladiť základ konzolovej aplikácie, workera a desktopovej aplikácie
  • konfigurácia, logovanie a DI sa prepájali dodatočne a ich ďalšie dopĺňanie je namáhavé

Vhodný postup

Pri Generic Host príliš nepomôže, ak si človek zapamätá len názvy API. Lepšie sa to usporiada, ak sa spustenie, životný cyklus a rozdelenie zodpovedností posudzujú spolu. Ak sa tri súvisiace články použijú ako vstupný bod a čítajú sa spolu so stránkami o vývoji aplikácií pre Windows a o revízii návrhu, ujasní sa, ako ďaleko má host zájsť.

Požiadajte o konzultáciu

Ak je táto stránka blízka situácii, ktorú riešite, poraďte sa s nami a opíšte nám súčasný kontext a druh podpory, ktorú potrebujete.

Späť na domovskú stránku