代码改变世界

数据库连接方案比拼

2007-04-16 00:02  Clingingboy  阅读(1276)  评论(1编辑  收藏  举报

.net曾经值得我们学习的petshop框架和现在我们普遍使用的Provider模式再到最近刚更新的Enterprise Library 3.0.
虽然已经做到了兼容多种数据库,但你一换数据库的话,意味着你还是需要写一大堆重复的代码,可能有工具帮你写.如果我们的系统真的到了这种地步,抽象工厂的实现方法还是没有减少我们的工作量.

最近看过一个叫锐傲的开源博客,值得大家学习,还有第一本书Nhibernate in Action要出版了.相信以后ORM会越来越流行.

scottgu发表了一篇Working with Data in ASP.NET 2.0,总结 

传说中的Nhibernate最佳实践已经更新到支持1.2版本了.

我们该如何学习Nhibernate呢?Nhibernate是有文档的,Nhibernate的文档是跟Hibernate差不多的,Hibernate是有中文文档的,两者90%的操作是差不多的,但Nhibernate没Hibernate支持的东西多.对比文档一看遍知.

文档可以到这里下载

个人认为Nhibernate的灵活性还是最大的,烦的就是配置xml文件,而且很重要,跟性能很有关系.


另外2.0新加的数据源控件使用率最高的应该是ObjectDataSource,看过里面的一些代码,我怎么老感觉当获取数据对象为DataReader时,数据库连接没有关闭,这个很早就注意到,还是我看错了,大家可以测试下.怎么测试呢
使用SqlDataSource对象,DataSourceCode属性设置为DataReader,在Selected事件中查看Connection的State属性,如果我说的没错的话,大家使用时候要小心了,还是用DataSet安全.

    protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
    
{

        Label1.Text
=e.Command.Connection.State.ToString();
    }

使用ObjectDataSource的话,虽然后台少了几行代码,其实有时候用的时候会发现没这么的方便的,总是出错.而且有时候总是重新从数据库中读数据绝对的影响性能.我以前就很喜欢用ObjectDataSource,所以不该用的时候还是不要用,刚开始可能感觉这个控件很好玩,我们还得从整体考虑下

大家可以看下scottgu刚写的Working with Data in ASP.NET 2.0.

发现其中有个叫SubSonic的,下过来看了看.好象以前接触过,又一个快速开发的框架.是不是Ruby的做法,自己瞎猜的.

我们还是看需求而定吧,我们并非就一定需要ORM