黎明中 发表于 2023-7-25 10:33:02

.NET 项目重构之DDD分层搭建

1. 目录


[*]1. 目录
[*]2. 背景
[*]3. 环境
[*]4. 项目搭建
[*]5. 结语
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. 结语

这样整个项目的基本层级关系就搭建完成了,接下来接入日志相关服务。

来源:https://www.cnblogs.com/hoyu/archive/2023/07/25/17579025.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: .NET 项目重构之DDD分层搭建