Temat
Temat: Generic Host / projektowanie aplikacji
Strona tematyczna o projektowaniu aplikacji .NET, na której można prześledzić razem: Generic Host, BackgroundService, DI, konfigurację, logowanie oraz projektowanie uruchamiania i zatrzymywania aplikacji.
Co chcemy uporządkować w tym temacie
Gdy aplikacja .NET trochę się rozrasta, kod uruchamiania (Main, Program.cs), inicjalizacja formularzy, przetwarzanie działające w tle przez cały czas pracy aplikacji, wczytywanie konfiguracji i inicjalizacja logowania zaczynają się rozpraszać.
Ten temat jest miejscem, w którym można prześledzić razem projektowanie uruchamiania i zatrzymywania całej aplikacji, wokół Generic Host.
- gdzie łączyć DI, konfigurację i logowanie
- kto odpowiada za czas życia usług
BackgroundServicei innego przetwarzania działającego w tle - jak obsługiwać kontrolowane zamykanie (graceful shutdown) i opróżnianie buforów przy zatrzymaniu
- jak uporządkować przetwarzanie znajdujące się poza interfejsem użytkownika
Zagadnienia często pojawiające się w konsultacjach
Task.Runi timery pojawiają się w wielu miejscach i nie wiadomo, kto odpowiada za zatrzymanie- trudno ocenić, jak daleko sięgnąć po
Host.CreateApplicationBuilderiBackgroundService - chcemy ujednolicić wspólną bazę dla aplikacji konsolowych, procesów roboczych (worker) i aplikacji desktopowych
- konfiguracja, logowanie i DI są dokładane na końcu, już po fakcie, co sprawia kłopoty
Zalecany sposób postępowania
Samo zapamiętanie nazw API w przypadku Generic Host niewiele daje; łatwiej uporządkować temat, gdy rozpatruje się łącznie uruchamianie, czas życia i podział odpowiedzialności. Jeśli zaczną Państwo od trzech powiązanych artykułów i przejrzą je razem ze stronami o tworzeniu aplikacji dla systemu Windows i o przeglądzie projektu, wyraźnie zarysuje się, jak daleko warto sięgnąć po host.
Zapraszamy do konsultacji
Jeśli mają Państwo problem zbliżony do treści tej strony, prosimy o konsultację z nami, przekazując obecny kontekst oraz rodzaj potrzebnego wsparcia.