Chủ đề
Chủ đề Generic Host và thiết kế ứng dụng
Chủ đề thiết kế ứng dụng .NET giúp bạn duyệt cùng lúc Generic Host, BackgroundService, DI, cấu hình, log và thiết kế khởi động, dừng.
Điều nên sắp xếp trong chủ đề này
Khi một ứng dụng .NET lớn lên một chút, Main, Program.cs, việc khởi tạo form, các tiến trình thường trú, việc đọc cấu hình và khởi tạo log có xu hướng phân tán. Chủ đề này giúp bạn, với Generic Host làm trục chính, đi qua cách thiết kế việc khởi động và dừng của toàn bộ ứng dụng.
- Nên kết nối DI, cấu hình và log ở đâu.
- Ai sở hữu vòng đời của
BackgroundServicevà các tiến trình thường trú. - Cách xử lý việc tắt có trật tự và xả dữ liệu khi dừng.
- Cách sắp xếp các xử lý nằm ngoài giao diện.
Những vấn đề thường gặp khi tư vấn
Task.Runvà các bộ định thời xuất hiện khắp nơi và trách nhiệm dừng chúng không rõ ràng.- Băn khoăn nên áp dụng
Host.CreateApplicationBuildervàBackgroundServiceđến mức nào. - Muốn thống nhất nền tảng cho ứng dụng console, worker và desktop.
- Việc kết nối cấu hình, log và DI được thêm dần về sau và trở nên khó bảo trì.
Cách tiếp cận khuyến nghị
Chỉ ghi nhớ tên các API của Generic Host thường là chưa đủ: sẽ dễ sắp xếp hơn khi cân nhắc cùng lúc khởi động, vòng đời và phân chia trách nhiệm. Dùng ba bài viết liên quan làm điểm vào cùng với các trang phát triển Windows và đánh giá thiết kế sẽ làm rõ nên đưa host vào đến mức nào.
Liên hệ với chúng tôi
Nếu trang này mô tả tình huống giống của bạn, hãy cho chúng tôi biết bối cảnh hiện tại và loại hỗ trợ bạn cần.