Тэма

Generic Host / тэма праектавання праграм

Тэма па архітэктуры праграм на .NET: Generic Host, BackgroundService, DI, налады, журналаванне, а таксама праектаванне запуску і спынення — усё гэта можна прасачыць у адным месцы.

Што мы хочам упарадкаваць у гэтай тэме

Калі праграма на .NET крыху вырастае, Main, Program.cs, ініцыялізацыя форм, фонавая працяглая апрацоўка, чытанне налад і ініцыялізацыя журналавання пачынаюць раскідвацца па розных месцах. Гэтая тэма збірае ўсё вакол Generic Host, каб можна было разгледзець, як спраектаваць запуск і спыненне ўсёй праграмы.

  • Дзе звязваць DI, налады і журналаванне
  • Хто валодае жыццёвым цыклам BackgroundService і іншай працяглай апрацоўкі
  • Як апрацоўваць graceful shutdown і запіс буфераў (flush) пры спыненні
  • Як упарадкаваць апрацоўку, якая знаходзіцца па-за UI

Пытанні, якія часта ўзнікаюць на кансультацыях

  • Task.Run і таймеры з’явіліся ў розных месцах, і нявызначана, хто адказвае за спыненне
  • Незразумела, наколькі глыбока трэба ўкараняць Host.CreateApplicationBuilder і BackgroundService
  • Хочацца выраўнаваць аснову для кансольных праграм, worker-службаў і настольных праграм
  • Падключэнне налад, журналавання і DI даводзілася дабудоўваць пасля факту, і гэта стала цяжкім

Рэкамендаваны парадак дзеянняў

Пра Generic Host цяжка скласці карысную карціну, калі запомніць толькі назвы API; лягчэй, калі разгледзець запуск, жыццёвы цыкл і падзел адказнасці разам. Калі пачаць з трох звязаных артыкулаў і разгледзець іх разам са старонкамі пра распрацоўку праграм для Windows і рэцэнзаванне праектных рашэнняў, становіцца зразумела, наколькі далёка трэба заходзіць з host.

Звярніцеся па кансультацыю

Калі ў вас ёсць праблема, блізкая да зместу гэтай старонкі, параіцеся з намі і напішыце, у якім вы цяпер становішчы і якая падтрымка вам патрэбна.

Назад на галоўную