三层架构是否必须严格遵守  web引用bll  bll引用dal  的规则,web层直接引用dal有什么缺点?  请大家说下自己的看法,要说理由哦 ! 别只是说不能引用.....

解决方案 »

  1.   

    不管怎么引用都是可以的,全部写到web都没问题。但是如果web层直接引用dal,就必须把业务逻辑的处理直接写的web或dal,不便于扩展,而且结构也不清晰
      

  2.   

    你的dal是什么东东?如果你把与业务有关的分层代码分别写到bll和dal中,那就是“为了三层而三层”,自找累赘。只需要使用ado.net或者entity framework等dal来直接处理业务数据就行了,不需要自己在发明dal层。那么当你简化了dal层概念,那么唯一需要考虑的就是“是否有必要设计bll层”这一层的问题。有了这一层,就是三层结构;没有它就是两层结构。对于专业的设计师,考虑到将工作职责分工给不同人,考虑到系统扩展方便,等等实际经验,会越来越倾向于独立设计bll层,甚至开发bll层给不同的前端应用程序共用。这需要经验!
      

  3.   

    比如说csdn论坛这样一个论坛,它可能只有20几个基本的bll方法就够了,而基于这20个基本的方法,不同人可以写出好几个pc浏览器的网站来,甚至写出好几个手机站来,以及各种桌面应用可以集成进这个论坛。于是csdn就可以把精力放在对服务的掌控上,对内容的把握上,而让开发前端程序的人去竞争,csdn仅仅负责帮助他们推广。这就是bll的概念。把握住核心的业务服务接口,设计它、控制它、开放它,而跟前端表现层技术可以脱离开。
      

  4.   

    在早期,为了将面向对象系统设计的.net对象顺利而方便地与关系数据库交互,可能自己要开发ORM等系统(包括要处理基于.net的触发器机制等)。这些都是属于dal层研究范围。相比各种ORM技术来说,最坑爹的、最低级的就是那种PetShop的dal实现方式,纯粹是浪费时间的死板方式,没有一点ORM常见的自动化技术含量。而现在,各种.net框架中dal层代码很多,一般人完全不必再自己去“研究”这一层的设计问题,只要选择几个程序员都熟悉的让他们使用就行了(不过尽量不要在一个系统中死板地规定仅允许使用一种第三方dal库方法来操作数据库,要允许同时使用2或者3种方法,以便优胜劣汰)。