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
BackgroundServicea 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.Runa č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.CreateApplicationBuilderaBackgroundService - 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.