我的申请分为3个项目
域
ui.web.mvc
webservices.webapi
内部域我有两个模型
Car
Engine
我的webservices项目引用域对象以检索数据。
如果mvc项目使用复杂的viewmodel或dto将数据发送到webservice和
webservice然后将该模型映射到域一,这是正常的想法
两个项目(webservices
和mvc
)上是否存在viewmodel或dto?
答案 0 :(得分:0)
(未图示:MVC还需要引用具体实现,或者使用XML配置,以便设置IoC容器)
对于初学者,您的MVC应用程序不应该了解Web服务。它应该在接口后面抽象(Dependency Inversion原则)。
public HomeController(IRepository repository, IService service)
{
this.repository = repository;
this.service = service;
}
我的假设是Domain Objects也有持久性注释。这是最常见的情况,因为其他两个选项是a)贫血模型或b)域模型,它们都是极端的。如果假设是正确的,则Repo和服务都应该与域对象一起使用。我没有看到你提到的DTO的地方。
'模式'很简单:检索域对象(来自Service或Repo),在其上调用一些业务逻辑,将其传递回Service / Repo。