繁体   English   中英

ASP.NET - 单一解决方案,MVC和WebApi项目,每个单独的模型?

[英]ASP.NET - Single Solution, MVC and WebApi projects, Separate Models for Each?

我们已经有了一个包含多个MVC Web项目的解决方案,现在又添加了一个面向客户端的WebApi项目。

API将是通过任何网络项目提供的缩小版本(尽管随着时间的推移它可能会扩展得更多),因此我们已经到了如何处理模型的决策点。

在不同项目中处理模型的最佳实践是什么?

据我所知,WebApi项目中的模型将使用某些对MVC Web应用程序毫无意义的属性属性。 而且作为示例,Display属性对WebApi没有意义,但在View中非常有用。

这让我相信我应该为WebApi创建一组单独的模型,但也想知道我是否遗漏了一些东西。

我知道这可能是一个可能导致一系列意见的问题,所以我主要是在寻找被认为是行业最佳实践的东西。

在我的Web API和MVC Web应用程序的解决方案中,我有以下结构

模型 :我的实体/业务对象。 这些是由我的数据库中的Entity框架创建的。 这几乎与我的数据库结构相同。 我的Repositary方法(用于数据访问)返回单个实例/此类实例的集合。 我的数据访问项目是一个单独的类库,已在其他地方引用,如我的web api项目等。

Web API ViewModels :特定于Web API接口/操作方法的Viewmodels(POCO类)。

MVC Web应用程序ViewModels :特定于我的剃刀视图的Viewmodels(POCO类)。 我甚至从Web API Viewmodels中继承了其中的一些,并根据需要添加了其他属性。

我为DTO使用了一个单独的项目,因此需要使用它们的项目不会遇到循环引用的问题。

我希望WebApi项目将您的模型映射到DTO中。 如果您的MVC项目正在使用WebAPI输出,则只需要引用DTO项目。 这使您不必直接引用WebAPI项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM