Aihe
Generic Host / sovellussuunnittelun teema
Aihe .NET-sovellusten arkkitehtuurista: Generic Host, BackgroundService, DI, asetukset, lokitus sekä käynnistyksen ja pysäytyksen suunnittelu koottuna yhteen paikkaan.
Mitä tässä aiheessa halutaan jäsentää
Kun .NET-sovellus kasvaa hieman, Main, Program.cs, lomakkeiden alustus, taustalla jatkuvasti toimiva käsittely, asetusten lataus ja lokituksen alustus alkavat hajautua eri paikkoihin.
Tämä aihe on kokoava paikka, jonka avulla koko sovelluksen käynnistyksen ja pysäytyksen suunnittelua voi käydä läpi Generic Hostin ympärille koottuna.
- missä DI (riippuvuuksien injektointi), asetukset ja lokitus yhdistetään
- kenellä on
BackgroundService-palvelun ja taustakäsittelyn elinkaari hallussaan - miten hallittu pysäytys (graceful shutdown) ja puskurien tyhjennys pysäytyksessä hoidetaan
- miten käyttöliittymän ulkopuolinen käsittely jäsennetään
Kysymykset, joita neuvonnassa nousee usein esiin
Task.Run-kutsuja ja ajastimia on levinnyt sinne tänne, eikä pysäytysvastuu ole selvä- on epäselvää, kuinka pitkälle
Host.CreateApplicationBuilderjaBackgroundServicekannattaa ottaa käyttöön - halutaan jäsentää, miten konsolisovelluksen, worker-palvelun ja työpöytäsovelluksen pohja saadaan yhtenäiseksi
- asetusten, lokituksen ja DI:n yhteydet on lisätty jälkikäteen palanen kerrallaan, ja se on hankalaa
Sopiva etenemistapa
Generic Hostista ei ole paljon hyötyä, jos opettelee vain API-nimet. Asia jäsentyy helpommin, kun käynnistystä, elinkaarta ja vastuiden jakoa tarkastellaan yhdessä. Kun lähtökohtana käytetään kolmea aiheeseen liittyvää artikkelia ja niitä tarkastellaan yhdessä Windows-sovelluskehityksen ja suunnittelukatselmoinnin sivujen kanssa, kuva siitä, kuinka pitkälle hostia kannattaa käyttää, selkiytyy.
Neuvottele kanssamme
Jos tämä sivu vastaa ongelmaa, jonka parissa työskentelette, pyytäkää meiltä neuvoa kertomalla nykyinen tilanne ja millaista tukea tarvitsette.