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时,要怎么实现这样的做法?
有一点希望大家原谅,由于目前比较困惑,急于得到更多人的帮助,冒昧把这篇文章发布到首页