【发布时间】:2022-12-14 09:44:50
【问题描述】:
我正在尝试在 .NET 6 项目中使用领域驱动设计,并且我正在努力解决以下问题。
在我之前的 Big Ball of Mud 项目中,我们通常将应用程序配置变量存储在环境变量(和/或 appsettings.json)中。 我对 DDD 的理解是,我们正在将业务规则/逻辑转移到领域层,以便将其组织到我们的应用层(实现细节)之外。
我完成了关于 Pluralsight 的培训,还回顾了 Microsoft 的面向 DDD 的微服务 (https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice) 和 Clean Architecture。很明显,域层应该引用应用层中的任何内容。
对我来说,使用 appsettings.json 似乎是应用层实现细节的一部分——所以我的问题是,“难道不能将 appsettings.json 与域层一起使用吗?”?
我提出这个问题是因为我想允许使用 appsettings.json 定义某些变量,但是我也希望能够使用这些变量在我的域层中强制实施守卫。
例如,我想在环境变量中定义一个“用户的默认会话长度”,但我也想在创建或更新实体时在域层中强制执行该会话长度。 我知道我可以在应用层中做到这一点,但是将应该绑定到域实体的东西移到应用层中感觉不对。
任何帮助或意见将不胜感激。
【问题讨论】:
-
领域层 => 强类型表示可以配置的内容。应用层 => appsettings.json & 环境变量 & DI & ... 提供配置值。
标签: c# .net domain-driven-design