如何让MVC和多层架构和谐并存(一)

MVC的架构和多层架构,在ORM框架上是不兼容的。MVC的数据库操做须要经过实体框架Entity Framework,多层的数据库操做须要经过DAL层。咱们最近刚完成的项目,实现了MVC和多层的并存,有一些心得,记述一下。算法

为何硬要把MVC和多层捆在一块儿用?有三个缘由,首先,新的项目是一个站长工具网站(www.youhuafenxi.com),里面不少查询算法,咱们在BLL层里都有积累,能够直接拿来用;其次,MVC的优雅和干净,特别适合咱们这个网站;最后,新技术的探索和使用永无止境,不学习就会落后。数据库

总体项目以下:架构

11OO6D19SH9248BGU0_thumb7

通过考虑,我决定数据操做走多层,放弃Entity Framework。缘由在于:1 团队成员不多接触Entity Framework,原本Mvc已是新东西了,再引入Entity Framework,此次项目中的新东西有点太多,风险太高。我一贯以为一个项目中新东西比例不宜超过30%;2 据我用过的朋友说,Entity Framework性能不太好,固然这个有待实际核实;3 BLL是个公用层,咱们写在BLL层里的代码未来还能够被别的项目复用,而Entity Framework写的代码通常只能被本项目使用。框架

MVC架构,数据实体是Models这个目录:工具

2WPUXP8SR717OEPDN4XY_thumb

多层的数据实体是Model层:性能

_QQ9CDKFPONL_8R62Q6_thumb4

这两种Model有什么差异呢?多层的Model,是彻底和数据库字段一一对应的,很简单,都是属性。MVC的Model,是和View业务逻辑对应的。这个业务逻辑可能和数据库有关联,也可能没有关联,甚至可能和多个数据表有关联,有可能很复杂,好比带List列表。可是,基本的业务逻辑,View的表单元素仍是能够和数据表一一对应的。这样,只要把Mvc的Model和多层的Model有相关性的按照相同表字段创建关联,就可使用到多层的数据操做。学习

 

(未完待续)网站

相关文章
相关标签/搜索