代码改变世界

SmartDAL(一) 特点

2009-09-02 20:22  Amar-Yao  阅读(625)  评论(5编辑  收藏  举报
   一年多以前做企业级开发总想着ORM,总觉得这个东西更面向对象更优秀。所以在公司主推Castle的ActiveRecord。但其中碰到了许多挫折。有工具本身的也有
开发人员自身的。其后用过NHibernate,SubSonic等一些列的ORM工具。给我的感觉是ORM确实不错但要正确的应用。
  如果你有一个规模较小的时间紧迫的业务系统等待开发。那么ORM无疑会给你带来大幅效率的提升。但如果要是开发类似报表工具系统那么ORM就显得过于死板。
  所以对于数据访问层这块其实我们有很多的选择,原则就是够用就好。本着这个目标我编写了SmartDAL这个开源的数据访问层。齐特点主要体现在两个方面:
1) 同时支持多个数据源
2) 支持跨不同的异构数据源(目前支持SqlServer,DB2,Oracle)

 下面分别细说:
  1) 同时支持多个数据源:
  有时我们的业务系统要同时操作多个数据源(同类或异类)。例如从一个数据源中取的原始数据,整理后写入另一个不同的数据源。这样的需求就给我们的业务系统底层带来了极大的挑战。怎样同时管理多个数据库链接或Session是个值得讨论的问题。这里并不想就此问题进行展开,只是提出这种需求的存在性。SmartDAL通过数据源配置文件在启动时读入配置并同时为每个数据源初始化一个特定的Provider实例。各个数据源的操作及连接都在这些特定的Provider上实现。这样就做到了多个数据源的分开管理。
 2)支持跨不同的异构数据源(目前支持SqlServer,DB2,Oracle)
  SmartDAL通过底层的Sql翻译器,将用户在业务系统里写的T-SQL转化为不同数据库的SQL并执行。这样开发人员就只需要在业务系统中写自己熟悉的T-SQL并不管底层数据库的实际类型。
 
  以上是两个特点的规划,目前第二个特点正在开发实践中。我将不断的更新代码及文章。
  源码: SmartDAL V0.1