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 BackgroundService i 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.Run i timery pojawiają się w wielu miejscach i nie wiadomo, kto odpowiada za zatrzymanie
  • trudno ocenić, jak daleko sięgnąć po Host.CreateApplicationBuilder i BackgroundService
  • 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.

Powrót do strony głównej