9

我对应用程序服务的理解是它们将域和用户界面联系在一起。换句话说,它们服务于控制器以在域上执行操作。

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

  • 领域核心
  • 基础设施
  • 服务接口
  • 网页界面
    • 视图模型
    • 意见
    • 控制器
    • 服务(应用服务)

我在项目Service Interfaces之外的谎言。Web UI然后在Web UI项目中,我在Services.

然而,这种结构有点缺陷,当我们将其付诸实践时会产生循环依赖。我尝试遵循此链接中的架构:https ://www.develop.com/onionarchitecture

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

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

或者

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

我只需要澄清一下严格的 DDD 方法中的最佳方法是什么。

4

1 回答 1

4

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

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

于 2015-08-21T03:15:47.780 回答