【发布时间】:2017-01-10 08:35:49
【问题描述】:
我对 ASP.NET MVC 还很陌生。我真的对我的项目的架构感到困惑。让我向你们解释我的困惑:
在我的项目中,我们都知道三个部分。它们是:控制器、模型和视图。
控制器位于Controllers 文件夹中,视图位于Views 文件夹中,模型位于Models 文件夹中。
众所周知,模型有两种类型:数据模型和业务模型。数据模型具有项目中要使用的所有数据类型,业务模型确实具有与项目相关的附加逻辑。除此之外,还有一个与数据库对话的应用程序数据层。
我将为这个数据层创建一个与数据库对话的类库项目。此外,我的 MVC 项目的 Models 文件夹将仅包含数据模型,并且我还将为业务模型类创建一个不同的库。
现在我面临的问题是:
假设我的MVC项目名称是MVCProj,数据层项目名称是DataProj,业务层项目名称是BusinessProj。
如果我在MVCProj 的Models 文件夹中定义数据类型,我必须在BusinessProj 和DataProj 项目中包含它的引用。另外,我必须在我的MVCProj 中使用BusinesProj 类。因此我必须在MVCProj 中添加BusinessProj 的引用,这会导致循环依赖。
我不确定我所设想的架构是否正确。请帮我解决。
【问题讨论】:
-
对于实体类型和接口等常见依赖项拥有一个共享项目是很常见的。这个项目在解决方案中通常没有任何自己的依赖项。
-
如果我将数据类型移动到不同的项目,那么 MVC 项目中的 Models 文件夹将是空的。
-
MVCProj应该有对BusinessProj的引用,BusinessProj不需要对MVCProj的引用。这样你就不应该得到循环依赖。
标签: asp.net-mvc