改进Asp.net MVC图层Arhitecture

时间:2012-02-08 15:45:20

标签: asp.net-mvc architecture

我想为我的MVC项目打造一个坚实的架构。

目前,项目有:

  • 数据库对象(linqToSql)
  • 用于观看的
  • ViewModels
  • 一个存储库用于

          - reading / editing / deleting database objects
          - creating ViewModels for page
          - other general functions
    

我的初始结构是:

 MvcApplication  (MvcApplication.Common, MvcApplication.Domain, MvcApplication.Models)
      - containing all the views, controllers, repositories

 MvcApplication.Domain
      - containing linqToSql data file

 MvcApplication.Models (MvcApplication.Common, MvcApplication.Domain)
      - containing ViewModels

 MvcApplication.Common (MvcApplication.Domain)
      - containing helper functions, and Enums

你能建议我为这个项目创建一个更好的架构吗?

我应该删除哪个图层?

ViewModel应该在域层吗?

1 个答案:

答案 0 :(得分:0)

Viewmodels是视图实现的基础。我不觉得viewmodels应该在域中。

我会对数据访问做同样的事情。我将该层分开,并且只在域中具有持久性接口。然后,我可以在运行时注入我的数据访问。虽然YMMV在那里。取决于你以后交换DAL的可能性。与服务相同。域中服务的接口。单独组装实现。

像这样的DAL抽象在测试期间变得非常方便,所以我可以完全针对模拟或不同的存储机制运行我的单元测试。

我不了解您,但我讨厌将我的逻辑测试绑定到某个数据库。有多个人运行测试,我怎么能确定测试数据库的完整性,除非我做sql express?

我甚至无法告诉你提取服务的次数,比如保存我的培根。什么,这项服务很慢,因为它全部同步?让我们更改服务实现以将消息推送到队列中。没有更改应用程序层或任何内容。