Tema
Tema: Generic Host / applikasjonsdesign
Temaside om design av .NET-applikasjoner der du samlet kan følge Generic Host, BackgroundService, DI, konfigurasjon, logging og design av oppstart og avslutning.
Hva dette temaet skal hjelpe deg å ordne
Når en .NET-applikasjon vokser litt, begynner Main, Program.cs, initialisering av skjemaer, bakgrunnsprosesser som kjører kontinuerlig, lasting av konfigurasjon og oppsett av logging å spre seg.
Dette temaet er et samlingspunkt der du kan følge hvordan oppstart og avslutning av hele applikasjonen bør utformes, med Generic Host som ordnende idé.
- hvor DI, konfigurasjon og logging skal kobles sammen
- hvem som eier levetiden til
BackgroundServiceog andre bakgrunnsprosesser - hvordan kontrollert avslutning (graceful shutdown) og endelig flush ved avslutning skal håndteres
- hvordan du ordner prosesseringen som ligger utenfor brukergrensesnittet
Spørsmål som ofte kommer opp i rådgivning
Task.Runog tidtakere dukker opp overalt, og det er uklart hvem som har ansvar for å stoppe dem- Det er uklart hvor langt man bør gå med
Host.CreateApplicationBuilderogBackgroundService - Du vil få en felles grunnmur for konsollverktøy, workere og skrivebordsapper
- Konfigurasjon, logging og DI er lagt til stykkevis i ettertid, og det er blitt tungvint
Typisk fremgangsmåte
Det hjelper lite å bare lære API-navn når det gjelder Generic Host. Det blir lettere å få orden på når du ser oppstart, levetid og ansvarsfordeling under ett. Hvis du tar utgangspunkt i de tre tilhørende artiklene og leser dem sammen med sidene om Windows-apputvikling og designgjennomgang, får du et klart bilde av hvor langt man bør ta i bruk host.
Rådfør deg med oss her
Hvis du har en utfordring som ligger nær innholdet på denne siden, kan du rådføre deg med oss og legge ved en beskrivelse av dagens situasjon og hva slags støtte du trenger.