2016-01-13 71 views
0

我读了很多,但我找不到明确的答案ASP.NET MVC项目分离的最佳实践的问题。我有一个非常小的,一个人演示项目,我想要使用Entity Framework实现对象关系映射数据库,但是我想避免将数据库层分离到另一个项目。据我所知,把数据模型放到MVC项目的隐式模型文件夹中是不是个好主意,但放在哪里? View模型(模型文件夹I gues),edmx文件,接口,存储库的正确命名和情况是什么,放置整个业务逻辑的最佳位置是什么?ASP.NET MVC小型项目架构

编辑

我表达自己错了与分离DAL到另一个项目,it's并不重要,让我有或不具有DAL在单独的项目,我只是鸵鸟政策看到任何优势这种方法在这个规模的项目中。

+0

DAL在单独的项目中出现了什么问题? –

+0

什么也没有,我只是没有看到这种方法在这个规模的项目中的任何优势。我表达了自己的错误,对我来说,将DAL纳入单独项目并不重要。 –

回答

0

好,ASP.NET MVC默认情况下只有2个命名约定(这反正是可以改变的):

  1. 控制器放置到Controllers文件夹,他们的名字应该与“控制”字,如“ShoppingChartController”结束。
  2. 视图被放置到Views文件夹的子文件夹中(其名称与控制器名称相同),默认情况下,它们的名称与您的控制器的操作名称相同。

原因是默认情况下,MVC框架在这些文件夹中查找控制器和视图(实际上有一个更复杂的逻辑来寻找它们,但其余的你可以从我提到的网站以上和来自MSDN)。

至于模型 - 这完全没有关系。至于我,如果我需要创建一个非常简单的网站,那么我将ViewModels放到ViewModels文件夹中,并将它们命名为'ShoppingChartViewModel'和映射到数据库中相应表格的数据模型到Models文件夹中。 如果您有服务或其他业务逻辑封装的内容,则可以将它们放入“服务”文件夹中。

3

如果你的一个人展示项目随着时间的推移变成一个大项目会怎样?通过不分离问题,您立即失去了可扩展性。

我不会在MVC项目中放置任何与客户端上的数据呈现或编辑没有直接关系的东西。

想想有一个服务层负责沟通数据库。 想想描述你的实体的领域层。然后,您可以从域实体构建您的视图模型,这些模型通过您的服务层进行检索。

这是一个非常基础的架构。如果您的数据库中有4个表格,那么有4个域名实体(模型或您想要调用它们的任何类型),4个EF配置文件和4个视图模型来显示页面上的数据。如果您决定在数据库中添加其他几个表格,那么您的MVC项目开始变得相当庞大,并且没有提及处理CRUD操作的任何接口或服务。