Fly with the wind-TerryDong

.NET on the way

导航

[原创]构建基于工厂模式的三层解决方案

Posted on 2007-12-06 18:27  Terry Dong  阅读(5173)  评论(28编辑  收藏  举报

背景:

由于目前服务的公司,系统复杂度很高,数据库使用了Oracle、SqlServer、MySql......(就差用到所有的数据库产品了,呵呵)

系统重构的过程中,之前写的基于sqlserver的简单三层架构已经不能满足系统重构的需求...

 

需求:

支持多类型数据库

操作多个同一类型数据库

参考:

PetShop4.0

 

解决方案框架图

 

基于工厂的三层解决方案

 

数据访问工具类

数据访问类使用DbProviderFactory实现,方法在父类实现,子类中只需通过实现CreateInstance()方法来指定providerName和connectionString 即可,唯一遗憾的是Mysql数据库不能通过这种方式实现,需要再单独写数据访问类了。

数据访问类

 

研究过很多框架,包括开源的和微软的一些示例产品,个人觉得有的框架繁杂,有的or-mapping架构的效率不高,框架的DAL层和entity层可以用基于codeSmith的代码生成,这样会提高开发效率,系统可复用性也不错

 

数据访问类库网上有很多,大部分是需要具体实现每一类型的数据访问类,今天利用项目测试期的空闲,完成了DbBase和它的实现类DbSqlServer,DbOracle,DbOleDb,心情很不错:)