MVC模式和WebForm模式数据访问的问题

WebForm模式开发,我们通常用多层框架,比如访问数据库,我们三层代码框架一般是这样:

BLL->IDAL->DAL->数据库

就是BLL调用IDAL接口层,IDAL通过工厂去调用DAL层实现接口,然后DAL层则去访问数据库

 

但是在ASP.NET MVC中,我看了几个开源项目:

1、Oxite(微软开源的,基于MVC开发的CMS系统)

2、NerdDinner (MVC源码)配套电子教程

3、Suteki.Shop

发现他们有几个特点:

特点1、他们都是通过 Controller->IRepository->Repository来调用数据的,有的是 Controller->IServices->Services->IRepository->Repository 的方式调用,只不过在Controller和Repository之间加了Services层。

特点2、他们把读取数据的和数据实体层都放在Models中,或和Models放一起

特点3、三个项目全用的Linq to SQL,而不是用ADO.NET

 

我的问题是:

1、“BLL->IDAL->DAL->数据库” 和 “Controller->IServices->Services->IRepository->Repository->数据库” 官方是不是推荐在MVC中使用后者?

2、如果使用后者是在MVC中被推荐的,这两种方式的区别在哪?因为我觉得IServices和IRepository接口中定义的接口方法几乎是一样的,那干嘛还要多搞一层,加个IServices干什么呢?


白猪掌柜的
浏览 562回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP