Тэма
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.
Звярніцеся па кансультацыю
Калі ў вас ёсць праблема, блізкая да зместу гэтай старонкі, параіцеся з намі і напішыце, у якім вы цяпер становішчы і якая падтрымка вам патрэбна.