首页 新闻 会员 周边

想整一个框架,数据访问想支持多种数据库,应该怎么样做?

0
悬赏园豆:50 [已解决问题] 解决于 2010-12-25 15:02

NH?

CASTLE?

SUBSONIC?

EF?

LINQ TO SQL?

Spring.NET?

IBeat.NET

CSLA.NET?

 

有没有办法,不用每种数据库都去写一套DataProvide?

求思路!!!!

问题补充: 谢谢各位先。。。 其实我是这样想的: IOC框架可以随需切换,如spring、castle、untity、甚至Net4里面的MEF..... ORM 框架可以随需切换,如NH,EF,Subsnic,Ibeat.NET...... 数据库可以支持至少MSSQL、ORCALE、MYSQL 我还想采用SOA+DDD,支持分布式,UI的话WINFORM、WPF、WEBFORM、Asp.NET MVC、Silverlight 这样形成一个通用技术框架,然后用这个框架在去做一些AOP,面向切面,比如现在要做一个通用权限管理系统,以后开发系统也用这套技术框架。。 就是这样啦,我的愿望,以后想融合EDA(事件驱动架构)的思想。。做两套通用技术框架,呵呵
明年今天的主页 明年今天 | 初学一级 | 园豆:187
提问于:2010-12-15 16:06
< >
分享
最佳答案
0

如果在调用端用SQL的,我不用做了。Connection很容易做到。但是SQL还是无法兼容,你做分页的时候,还要想想究竟用with 、 row_num 、rownum。 用Trim 还是 ltrim+rtrim,。除非你能在SQL一级进行封装。

收获园豆:35
沉默的糕点 | 小虾三级 |园豆:1786 | 2010-12-16 10:53
不太明白你说的,还望赐教?
明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:21
如现在你要写分页sql,无论你的provider是什么,不同的db sql都是不同的,你的框架有办法解决这类型的问题吗?
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-16 13:24
这些不是都交给NH处理了么? 如果实在不行那只能用Sp来分页了
明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:34
如果用NH,你就何必做框架了,直接用就是了。
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-16 13:35
我的意思是,用哪些现成的框架,组装一下,实现我那个要求,是想多几种思路或者选择,或者参照其实现方法。。。。
明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:49
spring+NH Castle+NH,都可以。但是不知道你的困惑时在哪里?
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-16 14:04
IOC框架可以随需切换,如spring、castle、untity、甚至Net4里面的MEF..... ORM 框架可以随需切换,如NH,EF,Subsnic,Ibeat.NET...... 数据库可以支持至少MSSQL、ORCALE、MYSQL 我还想采用SOA+DDD,支持分布式,UI的话WINFORM、WPF、WEBFORM、Asp.NET MVC、Silverlight 这样形成一个通用技术框架,然后用这个框架在去做一些AOP,面向切面,比如现在要做一个通用权限管理系统,以后开发系统也用这套技术框架。。 就是这样啦,我的愿望,以后想融合EDA(事件驱动架构)的思想。。做两套通用技术框架,呵呵
明年今天 | 园豆:187 (初学一级) | 2010-12-16 14:15
我知道CSLA就可以,呵呵。。。。
明年今天 | 园豆:187 (初学一级) | 2010-12-16 14:20
太复杂了,帮不了你。
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-16 14:28
非常感谢。。 你有可供参照的代码么?
明年今天 | 园豆:187 (初学一级) | 2010-12-16 18:41
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx NH的好文章,几乎所有的NH架构都是这样的。然后再对比castle和spring之间的差别,然后再决定。
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-16 23:44
NH和Castle和结合好还是Spring.net?
明年今天 | 园豆:187 (初学一级) | 2010-12-17 11:20
IOC,我个人喜欢Castle,比较容易配置。AOP,UI等,应该是Spring.net提供的方案比较全面。企业开发推荐Spring.net,套餐的成本比较低。
沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-17 13:29
其他回答(7)
0

System.Data.Common.DbProviderFactories.GetFactory()

可以研究下这个方法.

收获园豆:3
I,Robot | 园豆:9783 (大侠五级) | 2010-12-15 17:37
我知道你说的方式。。 用ADO.NET,然后各个Data对象都用高层的抽象对象 可这种方式需要写各个版本的SQL,想找一种方法,最好能够一劳永逸。
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:23
这个好像不支持MYSQL呀,要去下载个Provider?
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:33
0

CYQ.Data 框架,支持多数据库,你可以看看,或者能从中得到什么启示。

收获园豆:2
路过秋天 | 园豆:4787 (老鸟四级) | 2010-12-15 19:05
这个和NH比起来有哪些优势? 有没有一个特性列表对比一下?
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-16 13:19
@明年今天:没用过NH,所以没比较~
支持(0) 反对(0) 路过秋天 | 园豆:4787 (老鸟四级) | 2010-12-16 13:51
-1

数据库操作的时候全部用接口,然后你写多种数据库的代码,都继承这些接口。。。

顾晓北 | 园豆:10844 (专家六级) | 2010-12-16 10:44
0

用的是 ibatis .net ,是在sqlMap.config 中设置的,可以支持挺多的,主流的应该都支持,它已经提供providers.config 配置文件了。瞎说几句,开发万能框架,愿望挺好,做起来....。开发的时候管理好复杂度,结构清晰应该就差不多了吧,没有必要追求万能通用吧,过犹不及

收获园豆:5
wgz | 园豆:1254 (小虾三级) | 2010-12-16 15:38
谢谢 可以发一份让我参照一下吗?万分感谢 liminany@gmail.com
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-16 18:40
0

还是自己根据工厂设计模式编一套吧,做个例子,这样以后可以直接用代码就行了。没有不写代码就完全通用的。所谓的通用,不过是框架帮你把这个通用给实现了而已。还不如自己创造个通用框架呢。算是自己的版权,多好。。。

lzhdim | 园豆:642 (小虾三级) | 2010-12-16 16:07
0

spring.net + nhibernate 不二之选,懂的自然懂

收获园豆:5
小青青 | 园豆:210 (菜鸟二级) | 2010-12-16 20:34
spring.net 还是CASTLE? 我比较想用CASTLE,能说说CASTLE和SPRING之间谁好些吗?
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-16 21:49
0

你自己开发一个provider让各大数据库商都支持就下可以实现你的想法了。

茂茂 | 园豆:2892 (老鸟四级) | 2010-12-17 09:39
谢谢。。这个想法实在是太奇妙啦,顶礼膜拜ING,受教啦,哥们,嘿嘿
支持(0) 反对(0) 明年今天 | 园豆:187 (初学一级) | 2010-12-17 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册