让人心存芥蒂的DataSet

来源:互联网 发布:2016比价软件 编辑:程序博客网 时间:2024/06/12 01:13
对于asp.net程序员,少不了要和数据库打交道,而微软也为我们提供了非常强大的工具用于数据的获取和展示,这就是DataSet和GridView(以前叫DataGrid)。然而,我们在使用这两个工具的时候,是不是总有一种不放心的感觉,主要是担心其效率,会不会成为整个程序的瓶颈呢?
  今天就来说说DataSet。的确,在开始的时候,对它确实有着诸多的顾虑,但是现在,所有的数据读取我都采用它了,包括有些可以用DataReader的。为什么呢?原因有二点,一是其开发效率相当高,往往可以达到事半功倍的效果;二是运行时并没有想像中的迟滞现象出现,现在服务器的资源已经足够。
  虽然从实践出发,我认识到DataSet给开发工作带来许多好处,但对于我们这些喜欢追求完美的程序员来说,总想了解更深层次的东西。刚好今天翻读《Effective C#》一书,有一节内容告诉了我们答案,主要是类比其优缺点,下面简述一下。
  缺点:一、使用XML序列化机制的DataSet与非.net代码之间的交互不是很好。二、DataSet是一个非常通用的容器,程序员可能会牺牲某些.net框架的类型安全而误用DataSet。
  优点:DataSet类被设计为关系数据库的一个离线缓存;DataSet还通过AcceptChanges()与RegectChanges()方法来支持事务,其中对数据更改的历史被存储在DiffGrams中;多个DataSet可以被合并在一起,提供一个公共的存储仓库;DataSet也支持视图。
  因为DataSet是一个通用容器,要支持这种通用性,总会有一点性能损失。但如果要改变这种通用性需要大量的工作,这种工作往往得不偿失。总之一句话:采用DataSet所获得的开发效率要远远高于自己看上去更优雅的设计。
  很多情况下,开发效率才是第一位的,毕竟,运行效率可以由高速发展的硬件来保证,让我们程序员有更多的时间去享受休闲时光,不正是我们的理想吗?
原创粉丝点击