ADO.Net程序作为下一代的开发程序,代号为Orcas。最近微软推出了VS 2008 Professional测试版,涵盖了VS之前版本的所有功能,快捷键也基本完整,与将要发布的RTM版不会有什么太大的差别。
对于ADO的数据访问技术是比较成熟的。ADO 访问数据的时候可以断开连接也可以不断开连接。但是对于ADO.Net程序而言保持连接简直是浪费,因为其数据已经被提到了客户端来处理,已经和数据库没有关系了。所以在ADO.Net的数据库系统中一般是当取回数据或者完成操作以后就会关闭数据库连接(实际上也许没有被关闭)。
ADO.Net的数据库连接的关闭是返回缓冲池中而不是一定断开了和数据库的连接,对于何时关闭这个连接由ADO.Net程序的缓冲池管理机制来决定。而ADO在使用的时候如果关闭了连接那么这个连接是真的被关闭了。#t#
这也是Delphi里面我们对于一个数据库一般只采用一个连接的原因,为了减少数据库连接的数目来降低数据库负担,当然COM+和MTS也提供了连接池机制,但是其连接池机制似乎不是很成熟,特别是MTS中采用系统的数据连接池可能会造成系统的死锁,当然我们可以使用自己的连接池或者第三方的连接池来管理数据库连接。
而在ADO.Net程序中这一功能是是系统的一部分,但是在使用中发现只有连接被关闭才会返回池中,如果连续的创建数据库连接而已经使用的数据库连接没有被返回池中这个时候,ADO.Net会真实的创建数据库连接并且返回给用户。由此可见在ADO.Net中如果不关闭连接而是不停的请求连接是一件很恐怖的事情。
要防止多个线程同时访问同一个数据库连接。而在Delphi 的客户端开发的时候我们要尽量的将少生成业务对象的实例,ADO.Net程序对于使用过的业务对象如果没有全局申明,那么在其申明的域以外就会被释放,一个好的传统是对于每个对象都在使用过以后赋值为nil,从而让系统回收。
在构建一个State Server时,我们最好将ADO.Net程序 设置为True,否则只有当这个State Object 被释放的时候才会被关闭,因为KeepConnection只保证在没有数据集被关闭的情况下才能关闭连接!为此我们在使用State Server Object的时候可以将KeepConnection属性设置为True,这样我们就能够在我们不需要数据连接而需要对象的状态的时候自动的将数据库连接关闭。