我有一个使用 Entity Developer 生成的域。这将创建我所有的实体和我的数据库表。我使用 NHibernate 来填充通过存储库公开的我的实体。然后我有一个服务层,它将存储库聚合成有用的服务。该层有两种使用方式。第一,我使用服务作为与 Web 层之间的唯一通信方式,并且我希望有朝一日将这些服务用于 WCF。现在,我正在处理我的 web 层,我正在尝试找出与我的服务通信的最佳方式。我的服务目前正在返回实体。我的 Web 层通过控制器中的服务获取这些实体。这可能不是很 DRY/DDD。我假设我的服务层需要通过 DTO 进行接口。DTO 非常适合我的 WCF 服务。至于我的 Web 层,我
所以这就是我的架构最终的样子:
Domain
Entities
Repository Interfaces
Infrastructure
NHibernate
Concrete Repositories
Services
DTO's
Concrete Services
Service Interfaces
IIS hosted WCF
Website
ViewModels
我会使用 Automapper 或 ValueInjecter 进行映射(可能是 ValueInjector,因为它能够展平和展平我的实体/DTO。
所以这是矫枉过正吗?我正在使用这种架构的系统非常大(我正在重写所有内容)。我做对了吗?一切都与 Ninject 解耦依赖,因为我可以看到想要随时更改系统的任何部分。任何想法、想法或批评都非常受欢迎和赞赏。