Hel*_*123 7 c# domain-driven-design
使用 gRPC 时,我遇到了正确架构的问题。在传统的DDD方法中,核心项目(即最内层/领域层)没有对外层的引用,仅真正包含实体/聚合/接口/值对象等。这些的实际实现可能会在不同的层中进行(基础设施/应用程序/等)
使用 gRPC,合约(即接口)是在原始文件级别定义的。但是这些原始文件必须编译为服务器/客户端才能工作。从我对 DDD 的介绍来看,核心层实际上不应该有包引用(例如,在 .Net core 中,我为我的核心域项目使用 .Netstandard 2.1 项目 - 它没有外部 nuget 包引用并且保持干净)。在正常情况下,您可以为标记接口等构建特定于域层的接口,以避免外部依赖项污染域层。但对于原始文件,这是不可能的。
我可以选择三个选项:
我想知道正确的方法是什么。我可以看到所有人的优点和缺点,但想了解一些关于一种方法是否比其他方法更好的信息。
您不应该将 proto 文件放入域中。域必须仅包含业务逻辑,而不包含其他内容。
如果我们谈论层 - 原始文件,首先,是对您的通信的描述。换句话说,表示层(API)是他们的好地方。
关于域中的附加打包 - 您可以这样做,但您应该最小化它们。
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |