ASP.NET 2.0数据绑定的发展简述
创始人
2024-04-25 13:10:56
0

ASP.NET 2.0数据绑定:为什么需要新的数据源模型

数据绑定是开发人员在 ASP.NET 1.x 中发现的最令人愉快的意外功能之一。与 Active Server Pages 对数据访问的支持相比,数据绑定是简单性和有效性的非凡结合。然而,如果根据真正开发人员的需要进行衡量,则它还不够完美。其局限不在于总体功能方面,而在于开发人员必须编写大量代码来处理甚至非常简单和常见的操作(例如,分页、排序或删除)。为了弥补这一缺陷,ASP.NET 2.0 添加了一种新的数据源模型(请参阅我的文章: More Load, Less Code with the Data Enhancements of ASP.NET 2.0)。它包括很多不带 UI 的新控件,这些控件将数据绑定控件的可视部分和数据容器联系起来。开发人员需要在 ASP.NET 1.x 中编写的绝大部分代码经过适当的分解和创作,现在基本上都被嵌入到一系列新的控件中:数据源组件。

使用数据源组件有很多好处 — 首先,可以得到完全声明性的数据绑定模型。新模型减少了以内联方式插入到 ASPX 资源中或者分散在代码隐藏类中的松散代码。新的数据绑定体系结构强制开发人员遵守严格的规则。此外,它还从本质上改变了代码的质量。附加到事件的较长代码块通常会消失,而被只是插入到现有框架中的组件所取代。这些数据源组件派生自抽象类,实现了已知的接口,并且总体而言意味着更高级别的可重用性。

Nikhil Kothari 的有关控件开发的优秀著作 — Developing Microsoft ASP.NET Server Controls and Components — 帮助成千上万的开发人员生成自定义控件,并且说明了设计和实现的最佳做法。但是,一本书 — 无论它有多么伟大 — 都永远无法取代一个更好的系统框架。借助于 ASP.NET 2.0,您还获得了一个完全重新设计的类图 — 当您沿着类树从基础类向叶子类滚动时,它能够添加更具体的数据绑定功能。通过新的数据绑定控件层次结构,所有开发人员都可以更容易地选取正确的类来加以继承,以便生成他们自己的自定义数据绑定控件。

在本文中,您将提前了解 ASP.NET 2.0 数据绑定模型中的能够对自定义控件产生影响的更改。在此过程中,您将了解可用的新基类以及新的高质量自定义控件的新要求。

ASP.NET 2.0数据绑定:数据绑定控件

ASP.NET 2.0 数据源模型并未要求必须使用新的控件(例如,GridView 和 FormView);它仍然能够与旧样式的控件(例如,DataGrid 和 CheckBoxList)协同工作。这对于控件开发人员而言意味着什么呢?有两个截然不同类型的数据源需要处理 — 传统的基于 IEnumerable 的数据容器(例如,DataView 和集合)以及数据源控件(例如,SqlDataSource 和 ObjectDataSource)。最后,无论数据源是 ADO.NET 对象、自定义集合还是数据源组件,ASP.NET 2.0 数据绑定控件都必须能够将传入的任何数据规格化为可枚举的集合。

在 ASP.NET 1.x 中,文档在某种程度上领先于框架。文档正确地标识和讨论了三个类型的数据绑定控件 — 标准控件、列表控件和复合控件。任何只是提供 DataBind 方法和 DataSource 属性的非空实现的控件都属于第一个类别。列表控件是下列两者的有趣结合:高级布局属性(例如,RepeatColumns 和 RepeatLayout),以及为绑定的每个数据元素重复的固定的嵌入式项模板。最后,复合控件负责通过组合一个或多个现有控件来设计最终的用户界面。文档准确地阐述了与创建上述类型的控件相关的任何问题;然而,ASP.NET 框架却并未提供很多基类来简化开发人员的任务。图 1 显示了 ASP.NET 2.0 中的新的数据绑定控件层次结构。请注意显示为黄色的基类以及它们在整个类树中的分布。

 

图 1. ASP.NET 2.0 中的数据绑定控件的层次结构 

对图 1 中呈现的基类进行一番观察是一件有趣的事情。它们在表 1 中列出并进行了详细说明。

说明

BaseDataBoundControl

数据绑定控件的根类。执行数据绑定并验证任何绑定数据。

DataBoundControl

包含用于与数据源控件和数据容器进行通信的逻辑。可以从该类继承以生成标准的数据绑定控件。

ListControl

列表控件的基类,提供 Items 集合和高级布局呈现功能。

CompositeDataBoundControl

实现复合控件所必需的典型代码,包括在进行回发之后根据视图状态还原控件树的代码。

HierarchicalDataBoundControl

基于树的分层控件的根类。

表 1. ASP.NET 2.0 中的基本数据绑定类

对于任何曾经花费巨大精力来创建能够管理自己的数据集合并且能够正确地从视图状态还原的、具有丰富功能的数据绑定控件的人而言,这些类特别受欢迎。

以上就简单介绍了ASP.NET 2.0数据绑定功能。

【编辑推荐】

  1. 概述ASP.NET调用Excel进程
  2. ASP.NET开发技巧之Theme功能浅析
  3. 详解ASP.NET动态编译
  4. Apache支持ASP.NET方法浅析
  5. 浅谈ASP.NET服务器标准控件

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...