我对应用程序服务的理解是它们在域和用户界面之间进行链接。换句话说,它们为控制器提供服务以在域上执行操作。
我的应用程序中有以下项目布局:
我的Service Interfaces
位于Web UI
项目之外。然后在Web UI
项目中,我实现Services
下的服务接口。
然而,当我们将其付诸实践时,这种结构有点瑕疵并产生循环依赖性。我试图在这个链接中遵循架构。 https://www.develop.com/onionarchitecture
对于给定的服务,我想传递视图模型,基于视图模型对域执行操作,然后返回更新的视图模型。这种方法有误吗?
我的理解是否正确,应用服务本质上将视图模型作为参数,更新域中的一些细节并在需要时查看模型,然后返回视图模型?
或
应用程序服务是否仅将c#数据类型和域模型作为参数处理并返回相同的数据类型?换句话说,在视图模型中不获取或设置任何信息。实际上不知道视图模型的存在。
我只需要澄清一下严格DDD方法的最佳方法。
答案 0 :(得分:4)
回答你的问题: 是的,你是对的。对于MVC应用程序,您可以设计采用并返回ViewModel的层并使用
中的域进行操作解决方案结构的好例子是Dino Esposito here。我把我的项目用于这个结构,它变得非常清楚。我的观点是onion architecture对于小型或中型项目而言过于复杂。