我正在尝试理解一个好的设计项目的概念。
我正在使用 ASP.NET MVC,并且正在尝试创建一个分层(可插入)项目。
我现在拥有的当前项目结构是这样的:
LayeredProject
- 包含 Controller 的 MVC 项目LayeredProject.EntityFramework
- 包含用于数据库的所有 POCO 类。 (我正在使用代码优先方法)LayeredProject.Model
- 这应该包含项目中使用的所有业务对象。
说该项目是一个电子商务网站,我会这样构建它:
在
LayeredProject.EntityFramework
项目我有与数据库表相对应的类。类别、产品、用户。该项目仅用于保存和加载数据库中的数据,这些对象不应用于其他目的。这个项目有引用LayeredProject.Model
项目。在
LayeredProject.Model
我的项目存储了我使用的所有对象,其中大多数都是LayeredProject.EntityFramework
的副本。 POCO 的对象和使用的一些其他服务类。在
LayeredProject
我保留所有 ViewModels 类、 Controller 和不同的 UI 逻辑。这个项目有引用LayeredProject.Model
项目。
首先,我不确定这是否是正确的方法。
而且,如果这是正确的做法,那么我会有点困惑,因为我将在 EntityFramework
中有我的 POCO 类的副本。项目以及 Model
项目。
请帮助我理解这一点
最佳答案
您可以使用分层结构以及使用 MVC 来设计您的项目。 Controller 和 View 部分应保持完整。您可以根据需要将业务逻辑部分划分为任意层。该模型应该是您期望的层数的结果。为此,请将您的业务逻辑保留在单独的项目中(不是必需的:它可以位于 Web 项目本身中),将该项目中的 dll 引用到 MVC Web 解决方案。将数据库查询生成的模型传递给 Web 解决方案,并在 Controller 的帮助下渲染 View 。(我已经使用这种风格完成了我的项目)
关于c# - ASP.NET MVC 项目层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768763/