为什么使用三层,自己的思考

为什么分层?代码复用,维护方便(不用牵一发而动全身)
在BLL层传调用存储过程(传存储过程名),还是在BLL中写sql代码?

       1)更好的维护和可读性。
它集中在一个地方,能够使三层架构的实现更加简单(存储过程将组成数据层)
部署到客户时,要修改逻辑只需修改存储过程,无需重新编译BLL组件。除非增加存储过程应用到程序中
更改数据库时,比如换成oracle,mysql。只需重建所有存储过程,无需重新编译BLL组件。
可读性:如果生写sql代码在BLL中,那么c#代码与sql代码混杂在一起,修改起来很难定位,容易出错
       2)更好的性能。因为sqlserver在它第一次执行时就生成并缓存了存储过程的执行计划
       3)安全。sqlserver可以为每一个存储过程设置不同的安全许可;而在c#代码中创建的sql查询,更容易受到sql注入攻击


不使用三层,在表现层中直接嵌入sql代码?
根本没有代码复用,修改起来牵一发而动全身,重复n次一样的sql语句

而三层:重用,可维护,移植,架构清晰,方便了分工合作
所以,应该严格的使用三层,并在BLL全部调用存储过程,而不是生写sql代码
posted @ 2011-10-16 22:51  EverSteins  阅读(177)  评论(0编辑  收藏  举报