B/S项目架构探讨

 

图中,是我对最近一个项目的架构设想,和网上普遍的三层架构类似
SQLDAL和MySQLDAL为数据访问层的不同实现,最终采用哪个数据访问层取决于配置文件,利用AOP来实现这一做法。DAL的实现上不采用ORM,担心数据量太大。
而BLL为不同的业务逻辑层实现,因为该项目是一个产品项目,会存在不同的客户在业务流程上的操作方法不一样,但最终数据表现还是一样的。
这里,我想在DAL层只实现SQL语句的生成,而不直接处理语句的执行。
而是在BLL层,调用公用类库中的数据访问类,结合DAL生成的SQL语句来处理语句的执行。
主要是考虑到下面原因:
1.DAL不用依赖于公用类库中的数据访问类DBHelper(DBHelper是通过DbFactory的思想来实现),项目只有BLL依赖于DBHelper
2.BLL中存在同一业务单据需要保存到两个不同类型的数据库中,并且需要操持事务的一致性
   如:  
          事务1.开始
          事务2.开始
          try
               事务1.执行
               事务2.执行
          catch
               事务1.撤消
               事务2.撤消
               throw ex
          事务1.提交
          事务2.提交

麻烦大家帮帮想想,这样的想法是否合理?是否存在其他更好的选择?麻烦给出建议
另外,大家是否有做过ASP.NET的插件式开发
以前在C/S结构时,可以通过反射的方式直接调用编写好的插件(带界面),以实现业务模块的可配置性
如果是B/S时,要怎么实现这样的做法?

有一点希望大家原谅,由于目前比较困惑,急于得到更多人的帮助,冒昧把这篇文章发布到首页

posted @ 2009-10-28 15:15  singleblue  阅读(4287)  评论(37编辑  收藏  举报