ASP.NET 2.0 BuildProvider 导论(二)

昨天知道了公司里年度调薪的结果,公司食言了,连他们自己许诺过的最低数字都没有达到,这次是彻底失望了,因为公司已经没有什么信誉可言了。

言归正传,上一篇中我给大家介绍了 ASP.NET 2.0 中新的 DataSet 设计器,并告诉大家:在 ASP.NET 2.0 中,用 DataSet 设计器设计的那些图形,在编译开始前,将被 DataSet BuildProvider 自动转换为相应的代码。

关于那些自动生成的代码,有下面几点提醒大家注意:

1) TableAdapter 类是 partial 的:意味着我们可以给这些 TableAdapters 外接一些方法等成员,我们可以通过外接把那些通过拖曳图形无法完成的代码、接续到特定的 TableAdapter 类中。

2) TableAdapter 类中使用的那些 Connection, Command, DataAdapter 等等的类型,会根据所访问数据库的不同(准确说是所使用的 .NET Data Provider 的不同)而变化。如果 web.config 中标明某个 ConnectionString 是使用 System.Data.OleDb,那么下次 DataSet 设计器存盘,会自动变成 OleDbConnection, OleDbCommand, ... 这些类型。

BuildProvider 是 ASP.NET 2.0 中新推出的功能,那么 Visual Studio .NET 2002/2003 中的 DataSet 设计器,是如何自动生成代码的?细心人注意过这一点,在 VS 2002/2003 的属性面板中,可以看到有一个“自定义工具”的,里面写着“MSDataSetGenerator”,类似的还有“CrystalDecisions.VSShell.CodeGen.ReportCodeGenerator”(水晶报表的 *.rpt 文件)。VS 2002/2003 使用的是 CodeGenerator 来自动生成代码。

其实,如果打开 Visual C# 2005 Express Edition 或者 Visual Basic .NET 2005 Express Edition,同样创建一个 DataSet,你会发现那里仍然是“Custom Tool”和“MSDataSetGenerator”,仍然是通过 CodeGenerator 自动生成代码的。

看来 BuildProvider 功能仅限于 ASP.NET 的项目,不适用于 Windows Forms 或者类库项目。

posted on 2006-08-11 11:27  破宝  阅读(148)  评论(0编辑  收藏  举报

导航