我可以在ApplicationLogic项目(网络标准2.1)的MVC(.net core 3.0)项目中使用视图模型吗?

我有一个MVC应用程序,所有视图模型都在其中。我添加了一个业务逻辑层项目,这是一个类库项目网络标准2.1,其中所有接口和服务都在其中。我试图在业务逻辑项目中使用我的视图模型,但是我不能在那里引用它们。我想知道是否可以在类库中引用MVC应用程序,否则,如果我不想添加DTO(因为我的应用程序不是一个很大的项目),可以将视图模型放在哪里?

zhengxyx 回答:我可以在ApplicationLogic项目(网络标准2.1)的MVC(.net core 3.0)项目中使用视图模型吗?

这里有很多困惑。首先,关于视图模型或DTO并没有什么神奇的,并且名称仅描述了特定的用法上下文。在一天结束时,您将拥有一个类,它表示特定上下文中的一些数据集合:仅此而已。其次,业务逻辑不是应用程序逻辑。应用程序逻辑与表示和用户交互有关,而业务逻辑与原始数据有关。这两件事不应该交叉,因为业务规则不应该确定表示形式,而提示也不应该确定业务规则。

业务层不应该对应用程序层(MVC应用程序)中的视图模型有任何了解,因为这会造成紧密的耦合(以及循环引用FWIW)。映射到应用程序层的视图模型/从应用程序层的视图模型映射到业务层的实体的逻辑仅是应用程序层的域。

本文链接:https://www.f2er.com/3139279.html

大家都在问