最近在做一个进销存项目,采用Asp.Net MVC+EF+jQuery(EasyUI)+Sql2008,以下是项目截图
C和V就不说了,M里放的是实体和EF数据库访问类(jinbudb.cs),一些业务逻辑基本是放在Controller下,请教下一些中大型系统应该怎么做架构设计?
可以参考一下Orchard,不过这样你的项目肯定来不及完工了。
直接把业务层抽取一下就行了,分层太多,累。
直接将Controller里的代码抽取出来放一层这个方法我也想过,但是我觉得这个意义不大,谢谢兄弟!
@勇哥哥: 后端基本是不会变化的,唯一多变的就是前台显示,所以抽取一下业务层是有点必要的。这样也能防止Controller太臃肿。
@幻天芒: 有点道理,谢谢兄弟了!
@幻天芒: 请教下抽取的业务层是放在Models层下建文件夹组织数据还是另外建个项目做BLL业务层,怎样组织数据比较科学合理点?谢了
@勇哥哥: 直接建个项目,放就行了。我一般都让bll和数据层耦合,哈哈。大中型项目另说。
@幻天芒: 你那不叫耦合,只是少了个中间接口层而已。一般来说,不做DB的泛化,这样说的过去。
@上帝之城: 好吧~这样说也没错。具体分层还需要根据项目本身来定。
三层结合mvc会好很多啊,就算不用三层业务逻辑也好是抽取出来的好
直接抽取业务比较好吧。感觉
数据库操作封装的的写成一层吧,视图用的Model用数据库生成的表实体映射。这样合理一点儿吧。
Asp.net. Mvc的 model实际上不包含业务逻辑和数据访问哈 只是视图模型。 所以你的数据访问和业务逻辑不要 放里边的好
楼主的分层完全可以,但是,这仅仅是对UI层功能权限的分层。
你至少还需要DAL,BLL 2层,
如果可能有多个数据库你可以搞个DB层,
你还可以搞些公共的仓储 Repository
如果你的项目访问人数比较多,需要用到分布式,那你还需要一层
既然用到了开源框架MVC,那么肯定有对于MVC的一些扩展类,这些你也可以搞个类库放一层
总之,怎么方便怎么使用。
楼上有几位兄弟可能对框架认识太浅,框架绝对不会是开发项目的累赘,在框架上浪费的时间可能多点,但是对于整体项目开发确实大力节省时间的,并且层次感更强。
(1)分层设计主要层的内容和层间交互,不一定非要在多个项目中,一个项目多个文件夹也可以。
(2)至少要把核心逻辑独立出来。
(3)你可以参考nopcommerce的,然后把它的项目转换为你项目里的文件夹。
good luck。