Téma
Téma: Generic Host / návrh aplikací
Téma architektury aplikací v .NET, které na jednom místě spojuje Generic Host, BackgroundService, DI, konfiguraci, logování a návrh spuštění a ukončení.
Co chceme v tomto tématu ujasnit
Jakmile aplikace v .NET trochu naroste, Main, Program.cs, inicializace formulářů, trvale běžící úlohy, načítání konfigurace a inicializace logování se začnou rozptylovat do různých míst.
Toto téma je místem, kde lze na základě Generic Host sledovat pohromadě, jak navrhnout spuštění a ukončení celé aplikace.
- Kde propojit DI, konfiguraci a logování
- Kdo je vlastníkem životnosti
BackgroundServicea dalších trvale běžících úloh - Jak řešit řádné ukončení (graceful shutdown) a vyprázdnění vyrovnávacích pamětí (flush) při zastavení
- Jak uspořádat zpracování, které leží mimo uživatelské rozhraní
Otázky, které se při konzultacích často objevují
Task.Runa časovače jsou rozesety po celém kódu a není jasné, kdo odpovídá za jejich ukončení- Není jasné, jak daleko zavést
Host.CreateApplicationBuilderaBackgroundService - Chceme sjednotit základ konzolové aplikace, worker služby a desktopové aplikace
- Dodatečné napojování konfigurace, logování a DI je obtížně udržitelné
Vhodný postup
U Generic Host příliš nepomáhá zapamatovat si pouze názvy API. Lépe se téma ujasní, když společně posoudíte spuštění, životnost a rozdělení odpovědností. Když se tři související články projdou společně se stránkami o vývoji aplikací pro Windows a o revizi návrhu, ujasní se, jak daleko má smysl zavést Generic Host.
Poraďte se s námi
Pokud tato stránka odpovídá situaci, kterou řešíte, poraďte se s námi a připojte současný kontext i to, jakou podporu potřebujete.