Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > ASP.NET 2.0 BuildProvider 导论(一)
【标  题】:ASP.NET 2.0 BuildProvider 导论(一)
【关键字】:ASP.NET,2.0,BuildProvider
【来  源】:http://blog.joycode.com/percyboy/archive/2006/08/07/79609.aspx

ASP.NET 2.0 BuildProvider 导论(一)

Your Ad Here

从这篇开始,开始陆续向大家介绍 ASP.NET 2.0 中一个新功能,在国内社区还很少有人论及,我就献丑了。

我第一次注意到这个新功能,是因为尝试使用 Visual Web Developer 2005 Express Edition 中的、新的 DataSet 设计器。这个 DataSet 设计器,和 Visual Studio .NET 2003 中的相比,有了很大的变化,最大的变化应该说是 TableAdapter。

新的 DataSet 设计器中,每个 DataTable 可以在它下方附带一个 TableAdapter。这个 TableAdapter 可以有若干个 Query。SELECT rows (获取一个 DataTable 的)类型的 Query 所返回的记录集,应该和它上方的 DataTable 定义的列相对应。其他类型的 Query,包括 SELECT scalar(只取第一行第一列的)以及 UPDATE, INSERT, DELETE 等,也可以被包含在这个 TableAdapter 中。

另外,TableAdapter 也可以单独存在(不依赖于 DataTable),不过如果是单独存在,那它就只能包含 SELECT scalar / UPDATE / INSERT / DELETE 等 Query,不能包含 SELECT rows 类型的 Query。

在这些 TableAdapters 或者说在新的 DataSet 设计器的帮助下,只要你愿意,你不需要再另外书写访问数据库(DAL)的代码(虽然有人会担心效率、耦合等等)。因为这些 TableAdapter 可以完成绝大多数常见的 DAL 操作。

接受了 TableAdapter 模式后,很多人(包括我)都会产生几个问题:TableAdapter 和 DataAdapter 有什么联系么?TableAdapter 是 .NET Framework 2.0 中新推出的一种类型?后一个问题,很容易就可以回答,因为 .NET Framework 2.0 SDK 的类库文档中,找不到任何叫做 TableAdapter 或者包含 TableAdapter 字样的类型。

很多细心人知道,在 Visual Studio .NET 2003 的 DataSet 设计器背后,每一个 *.xsd 文件背后都有一个 *.xsx 文件和一个 *.cs 文件(如果你用别的编程语言,扩展名可能不同)。前者只存储了设计器中每个图形的坐标和大小,它纯粹是为 DataSet 设计器服务的,可以在下次打开设计器时,恢复原来各个图形的位置。后者却包含了设计器中那些代表 DataTable 的图形所产生的代码。熟悉 VS.NET 2003 DataSet 的朋友,或许已经研究过这些冗长而枯燥的代码了。

可是在 Visual Web Developer 2005 Express Edition 的 DataSet 设计器背后,却只有一个 *.xss 文件,这个文件和 VS 2003 中的 *.xsx 文件一样,只记载了各个图形的坐标和大小。那些 *.cs 代码去哪儿了?

其实有一个简单的方法,可以查看到这些代码,那就是大家熟悉的“Go To Definition”菜单命令。

或许你已经熟悉了下面的事情:如果 DataSet 的文件名叫做 AbcDS.xsd,其中有一个 DataTable 叫 Users,则实际上:

1) DataSet 的类名就叫 AbcDS,
2) 那个 DataTable 就是 AbcDS.UsersDataTable;
3) 这个 DataTable 上附带的那个 TableAdapter 默认叫做 UsersDataTableAdapter,不过它处在一个叫做 AbcDSTableAdapters 的命名空间中,全名也就是 AbcDSTableAdapters.UsersDataTableAdapter。

任意找一个 *.cs 文件,我们输入 AbcDS,在智能感知的帮助下,我们可以看到 AbcDS.* 和 AbcDSTableAdapters.*。我们继续把类名书写完全后,右击,Go To Definition。看到这些代码了吧?

我在这个地方停一下,大家先琢磨琢磨那些自动产生的代码吧。这些代码都是 ASP.NET 2.0 中的内置的 DataSet BuildProvider 动态产生的。(待续...)

Path.Combine (合并两个路径字符串)方法的一些使用细节:【上一篇】
今天用了一下Google的趋势,震撼中。。。:【下一篇】
【相关文章】
  • Solaris9下安装vsftpd2.0.1
  • Spring2.0技巧之活用FactoryBean
  • asp.net控件开发基础(4)
  • asp.net 2.0下一个标准GRIDVIEW功能的实现(不用datasource控件)
  • ASP.NET页面下载程序
  • DevComponents.DotNetBar 5.9.0.2 patch For .Net framework 2.0 is coming.
  • ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了!
  • ASP.net 2.0 学习之001:鼠标移过GridView的行,前景色和背景色发生变化
  • Scott Mitchell的ASP.NET2.0教程
  • asp.net2.0自带的Provider源码
  • 【随机文章】
  • 什么是PKI?PKI的基本组成是什么?
  • 真是世风日下 现在的年青人""怎么拉
  • StrutsCatalog系列(5)--文件上传
  • Fireworks MX 2004特效字系列教程——立体网格字制作
  • 逻辑设计的例子
  • 快速切换Office程序另有妙法
  • [翻译]了解ASP.NET底层架构(二)
  • 网络便条本(设想阶段)
  • MYSQL里的预定义查询
  • 一个小技巧,在http和https之间转化
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.