CleanArchitecture WorkerService 项目教程
1、项目的目录结构及介绍
CleanArchitecture.WorkerService/
├── src/
│ ├── CleanArchitecture.WorkerService.Core/
│ ├── CleanArchitecture.WorkerService.Infrastructure/
│ ├── CleanArchitecture.WorkerService.Application/
│ ├── CleanArchitecture.WorkerService.WebApi/
│ ├── CleanArchitecture.WorkerService.Worker/
│ ├── CleanArchitecture.WorkerService.Tests/
├── tests/
│ ├── CleanArchitecture.WorkerService.UnitTests/
├── .dockerignore
├── .editorconfig
├── .gitignore
├── CleanArchitecture.WorkerService.sln
├── Directory.Build.props
├── Directory.Packages.props
├── LICENSE
├── README.md
├── ef-migrations.txt
目录结构介绍
src/
:包含项目的所有源代码。CleanArchitecture.WorkerService.Core/
:核心业务逻辑。CleanArchitecture.WorkerService.Infrastructure/
:基础设施层,包括数据库访问、外部服务等。CleanArchitecture.WorkerService.Application/
:应用层,处理业务逻辑。CleanArchitecture.WorkerService.WebApi/
:Web API 层。CleanArchitecture.WorkerService.Worker/
:Worker 服务层。CleanArchitecture.WorkerService.Tests/
:测试项目。
tests/
:包含所有测试代码。CleanArchitecture.WorkerService.UnitTests/
:单元测试项目。
.dockerignore
:Docker 忽略文件。.editorconfig
:编辑器配置文件。.gitignore
:Git 忽略文件。CleanArchitecture.WorkerService.sln
:解决方案文件。Directory.Build.props
:构建属性文件。Directory.Packages.props
:包管理属性文件。LICENSE
:许可证文件。README.md
:项目说明文件。ef-migrations.txt
:Entity Framework 迁移记录。
2、项目的启动文件介绍
项目的启动文件位于 src/CleanArchitecture.WorkerService.Worker/Program.cs
。
using CleanArchitecture.WorkerService.Worker;
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
services.AddHostedService<Worker>();
})
.Build();
await host.RunAsync();
启动文件介绍
Program.cs
:定义了 Worker 服务的主机配置和启动逻辑。Host.CreateDefaultBuilder(args)
:创建默认的主机构建器。ConfigureServices
:配置服务,注册Worker
服务。Build()
:构建主机。RunAsync()
:异步运行主机。
3、项目的配置文件介绍
项目的配置文件主要包括 appsettings.json
和 global.json
。
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=CleanArchitecture;User Id=sa;Password=your_password;"
},
"RabbitMQ": {
"Host": "localhost",
"Username": "guest",
"Password": "guest"
}
}
global.json
{
"sdk": {
"version": "7.0.0"
}
}
配置文件介绍
appsettings.json
:包含应用程序的配置信息,如日志级别、数据库连接字符串、RabbitMQ 配置等。Logging
:日志配置。AllowedHosts
:允许的主机。ConnectionStrings
:数据库连接字符串。RabbitMQ
:RabbitMQ 配置。
global.json
:包含 SDK 版本信息。sdk
:指定使用的 .NET SDK 版本。