- A+
所属分类:.NET技术
1. 目录
2. 背景
好久没有做国内项目了,也好久没有重构项目了。正好手里有一个定时服务需要重构, 就想着正好趁这个机会学一点点新的知识。比如DDD。
3. 环境
Windows 11 、Visual Studio 2022 、.NET 7 、SqlServer2022
4. 项目搭建
在项目文件夹中依次执行这些命令,或者放在PowerShell脚本里执行。
这里需要说明一下第一个项目创建的是MVC项目,选择MVC的原因有两个:
第一,可以加入SwaggerUI 跳过定时任务直接调试代码。
第二,可以在图形页面中查看该项目的异常信息。
mkdir 01-Presentation mkdir 02-Application mkdir 03-Domain mkdir 04-Infrastructure dotnet new mvc -n QuartzServices.Web -o ./01-Presentation/QuartzServices.Web dotnet new classlib -n QuartzServices.Application -o ./02-Application/QuartzServices.Application dotnet new classlib -n QuartzServices.Domain -o ./03-Domain/QuartzServices.Domain dotnet new classlib -n QuartzServices.Domain.Core -o ./03-Domain/QuartzServices.Domain.Core dotnet new classlib -n QuartzServices.Infrastructure -o ./04-Infrastructure/QuartzServices.Infrastructure dotnet new sln -n QuartzServices dotnet sln add ./01-Presentation/QuartzServices.Web/QuartzServices.Web.csproj dotnet sln add ./02-Application/QuartzServices.Application/QuartzServices.Application.csproj dotnet sln add ./03-Domain/QuartzServices.Domain/QuartzServices.Domain.csproj dotnet sln add ./03-Domain/QuartzServices.Domain.Core/QuartzServices.Domain.Core.csproj dotnet sln add ./04-Infrastructure/QuartzServices.Infrastructure/QuartzServices.Infrastructure.csproj
创建完, 目录结构如下:
├─01-Presentation │ └─QuartzServices.Web │ │ appsettings.Development.json │ │ appsettings.json │ │ Program.cs │ │ QuartzServices.Web.csproj │ │ QuartzServices.Web.csproj.user │ │ │ ├─Controllers │ │ HomeController.cs │ │ │ ├─Models │ │ ErrorViewModel.cs │ │ │ ├─Properties │ │ launchSettings.json │ │ │ ├─Views │ │ │ _ViewImports.cshtml │ │ │ _ViewStart.cshtml │ │ │ │ │ ├─Home │ │ │ Index.cshtml │ │ │ Privacy.cshtml │ │ │ │ │ └─Shared │ │ Error.cshtml │ │ _Layout.cshtml │ │ _Layout.cshtml.css │ │ _ValidationScriptsPartial.cshtml │ │ │ └─wwwroot │ │ favicon.ico │ │ │ ├─css │ │ site.css │ │ │ ├─js │ │ site.js │ │ │ └─lib │ ├─bootstrap │ │ │ LICENSE │ │ │ │ │ └─dist │ │ ├─css │ │ │ bootstrap-grid.css │ │ │ bootstrap-grid.css.map │ │ │ bootstrap-grid.min.css │ │ │ bootstrap-grid.min.css.map │ │ │ bootstrap-grid.rtl.css │ │ │ bootstrap-grid.rtl.css.map │ │ │ bootstrap-grid.rtl.min.css │ │ │ bootstrap-grid.rtl.min.css.map │ │ │ bootstrap-reboot.css │ │ │ bootstrap-reboot.css.map │ │ │ bootstrap-reboot.min.css │ │ │ bootstrap-reboot.min.css.map │ │ │ bootstrap-reboot.rtl.css │ │ │ bootstrap-reboot.rtl.css.map │ │ │ bootstrap-reboot.rtl.min.css │ │ │ bootstrap-reboot.rtl.min.css.map │ │ │ bootstrap-utilities.css │ │ │ bootstrap-utilities.css.map │ │ │ bootstrap-utilities.min.css │ │ │ bootstrap-utilities.min.css.map │ │ │ bootstrap-utilities.rtl.css │ │ │ bootstrap-utilities.rtl.css.map │ │ │ bootstrap-utilities.rtl.min.css │ │ │ bootstrap-utilities.rtl.min.css.map │ │ │ bootstrap.css │ │ │ bootstrap.css.map │ │ │ bootstrap.min.css │ │ │ bootstrap.min.css.map │ │ │ bootstrap.rtl.css │ │ │ bootstrap.rtl.css.map │ │ │ bootstrap.rtl.min.css │ │ │ bootstrap.rtl.min.css.map │ │ │ │ │ └─js │ │ bootstrap.bundle.js │ │ bootstrap.bundle.js.map │ │ bootstrap.bundle.min.js │ │ bootstrap.bundle.min.js.map │ │ bootstrap.esm.js │ │ bootstrap.esm.js.map │ │ bootstrap.esm.min.js │ │ bootstrap.esm.min.js.map │ │ bootstrap.js │ │ bootstrap.js.map │ │ bootstrap.min.js │ │ bootstrap.min.js.map │ │ │ ├─jquery │ │ │ LICENSE.txt │ │ │ │ │ └─dist │ │ jquery.js │ │ jquery.min.js │ │ jquery.min.map │ │ │ ├─jquery-validation │ │ │ LICENSE.md │ │ │ │ │ └─dist │ │ additional-methods.js │ │ additional-methods.min.js │ │ jquery.validate.js │ │ jquery.validate.min.js │ │ │ └─jquery-validation-unobtrusive │ jquery.validate.unobtrusive.js │ jquery.validate.unobtrusive.min.js │ LICENSE.txt │ ├─02-Application │ └─QuartzServices.Application │ Class1.cs │ QuartzServices.Application.csproj │ ├─03-Domain │ ├─QuartzServices.Domain │ │ Class1.cs │ │ QuartzServices.Domain.csproj │ └─QuartzServices.Domain.Core │ Class1.cs │ QuartzServices.Domain.Core.csproj │ └─04-Infrastructure └─QuartzServices.Infrastructure Class1.cs QuartzServices.Infrastructure.csproj
5. 结语
这样整个项目的基本层级关系就搭建完成了,接下来接入日志相关服务。