MVC3 MongoDB项目架构

时间:2012-09-04 06:42:43

标签: asp.net-mvc-3 mongodb

我们正在开始新的项目,它将使用MVC3和mongoDB进行数据库存储。任何人都可以指出我们更好的项目架构。

我们有以下问题:

  1. 我们可以拥有Project.Data(用于mongoDB的数据访问),Project.WEB.UI(MVC),Project.Core(业务逻辑) - Visual Studio解决方案文件中的3个项目吗?
  2. 哪里有模型类?在Project.Core?如何在这些项目之间共享模型?
  3. 如果有人有这种架构并且有一些示例类和接口(在VS项目文件中),请分享给我
  4. 我们还需要数据模型与mongodb进行交互吗?把这些模型放在哪里?我们可以在所有项目中分享这些模型吗?任何有效的代码都受到高度赞赏。
  5. 注意:我已经看到很少其他SO问题,而且这些问题没有直接回答我的问题。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

在我参与的项目中,我们最终将您拥有的核心和数据结合起来。最初,我们在服务和具有Mongo查询的DAL中完全分离了对业务逻辑的关注。因为当你使用MongoDB时,它与使用RDBMS非常不同,我们发现我们的大部分业务逻辑都是以使Mongo特定的方式编写的,所以我们将这些层组合在一起,因为我们看起来几乎有一个冗余层,如果我们决定回到RDBMS,我们可能会重写一些逻辑。

至于你的问题,你的Domain对象是你的Mongo实体,所以我把它们放在你的数据层中。然后,我将在您的WEB项目中使用您的MVC模型,并使用Automapper在它们之间进行映射。