【发布时间】:2021-01-21 03:53:48
【问题描述】:
谁能解释一下? 我正在尝试将我的 wpf 应用程序 mvvm 转换为不同的层(读取 ddd)。我有一些小困惑
- 表示层(WPF、WEB、API)(好的……我知道)
- 实体模型(我知道是代表数据库表的类,例如 来自实体框架的客户 {id,name,surname,phone}
但以下让我感到困惑
- 域模型(是代表sql表列的类吗?例如 客户 {Id,Name,Surname,phone} 或对我有意义的类 应用程序,例如客户 {ID,FullName,Balance}
- 领域模型在哪里?在哪一层(单独的dll?,在服务中 层 ?或在数据存储库 dll 中)
- DTO(Data Transfered object)和领域模型一样吗?
- 服务层(是单独的 dll 吗?)
- 业务层(很多时候我看到业务层这个词,有些 将其称为服务层)它实际上是什么?是一样的吗?是吗 不同的班级?拥有自己的不同 dll(层) 服务层之外的责任?
- 数据存储库(问题是,服务层或业务层是否应该在存储库所在的同一层中实现)
通过以上所有内容,我制作了示例应用程序,试图了解每个应用程序的去向。
我遵循的步骤
- 我已成功了解数据存储库。一个简单的界面 使用 CRUD 和/或复杂查询
- 我创建了一个
IService,它实现并继承自存储库 - 现在在 wpf 中我必须引用服务 dll,但 wpf 不仅需要服务 dll,还需要存储库 dll,因为服务层正在使用它。
我的问题是。正常吗?服务不应该是独立的吗?
服务层应该使用它自己的模型吗?并将数据存储库模型转换为服务模型?因此 wpf 不需要参考存储库吗? (但如果是这样的话......不是重复工作吗?)
【问题讨论】:
标签: c# domain-driven-design ddd-repositories service-layer