DDD应用服务域模型查看模型映射

Sha*_*Wyk 8 architecture domain-driven-design onion-architecture ddd-service

我对应用程序服务的理解是它们在域和用户界面之间进行链接.换句话说,它们为控制器提供服务以在域上执行操作.

我的应用程序中有以下项目布局:

  • 域核心
  • 基础设施
  • 服务接口
  • Web UI
    • 的ViewModels
    • 查看
    • 控制器
    • 服务(应用服务)

Service InterfacesWeb UI项目之外的谎言.然后在Web UIProject中我实现了服务接口Services.

然而,当我们将其付诸实践时,这种结构有点瑕疵并产生循环依赖.我试图在这个链接中遵循架构.https://www.develop.com/onionarchitecture

对于给定的服务,我想传入视图模型,基于视图模型对域执行操作,然后返回更新的视图模型.这种方法有误吗?

我的理解是否正确,应用程序服务本质上将视图模型作为参数,更新域中的一些细节并在需要时查看模型然后返回视图模型?

要么

应用程序服务是否仅将c#数据类型和域模型作为参数处理并返回相同的数据类型?换句话说,在视图模型中不获取或设置任何信息.实际上并不知道视图模型的存在.

我只需要澄清一下严格DDD方法的最佳方法.

Bac*_*cks 4

回答你的问题:是的,你说得对。对于 MVC 应用程序,您可以设计接受并返回 ViewModel 并在内部使用 Domain 进行操作的层

Dino Esposito在这里制作了解决方案结构的一个很好的例子。我将我的项目采用了这种结构,它变得更加清晰。我的观点是,洋葱架构对于中小型项目来说过于复杂。