本文介绍ASP.NET中的DataSourceControl基类,讨论的是如何合理的利用DataSourceControl,来简化我们在页面的一些数据操作,代替一部分的参数处理工作,并最终取代页面的后台代码文件。

ASP.NET中的DataSourceControl基类

ASP.NET中的DataSourceControl基类  DataSourceControl基类 ASP.NET 第1张

近一段时刻以来,我发现博客又掀起了新的一轮评论热潮,特别是针对WebForm和MVC的评论。这样的评论能够促进咱们的前进,一起也能够让每个人对每种技能的了解都愈加深化。不同的技能都有自己的***实践,比方WebForm和MVC。假如咱们咱们在往常的开发实践中都能遵照每一种技能根本运用原则,而不是乱用,那么我就不信不会得到***作用。

这儿,我要评论的是怎么合理的运用DataSourceControl,来简化咱们在页面的一些数据操作,替代一部分的参数处理作业,并终究替代页面的后台代码文件。这个思路,源于在ASP.NET Blogs的一篇文章(我现在现已找不到该文章的链接的,大约意思便是讲假如运用DataSourceControl来封装一些杂乱的数据处理)和NBearDataSource的根底上提出来的,现在现已运用了一个网站项目的开发,而且自认为这是一种值引荐的WebForm开发办法。

在ASP.NET 2.0中,提出一种新的数据绑定办法,都便是运用DataSourceControl控件来查询数据,而数据控件自身只需指定DataSourceID即能够与DataSourceControl相关,而DataSourceControl自身会调用会依据不同的完结的主动进行参数的指定和查询的作业。在ASP.NET 2.0,内置供给了ObjectDataSource,SqlDataSource和AccessDataSource。能够说,咱们常常运用的都会是 ObjectDataSource,可是因为功用约束的原因,许多情况下都还比较杂乱。这时假如仅限于运用体系供给的DataSourceControl,那它的功用根本就废了。

我对DataSouceControl的实践是将不同模块(或数据查询)通通封装成一个一个的DataSourceControl。DataSourceControl基类能够是ObjectDataSource,也能够是直接从System.UI.DataSourceControl承继而来,在笼统办法的根底进行完结。可是主张仍是要一个处理公有逻辑的DataSourceControl基类,比方假如你运用NBear解决方案,那么你能够从NBearDataSource承继而来;或许假如你运用LINQ,则能够创立一个LINQDataSource。以NBearDataSource为例来解析这样做的优点:

1)在NBearDataSource中,对数据的查询,咱们只需指定实体类型,然后依据条件参数生成WhereClip,然后调用NBearDataSource.Filter办法,即可完结一个简略实体的查询。不需求调用Gateway查询接口。

2)在NBearDataSource中,在数据提交时(新增和修正)转入的数据赋值到对应的实体目标中。比方假如你运用FormView与DataSourceControl结合运用进行新增修正数据,那么FormView里提交的字段,你就不需求一个一个的去从输入控件中去获取,运用Bind双向绑定,在DataSourceControl就能够得到一切输入字段值。而NBearDataSource更是会把一切提交的字段,都给咱们赋值到一个指定的实体目标中,直接就能够保存到数据库了

3)每个DataSourceControl,依据自己的功用不同,能够灵敏进行修正的操控。并作为页面,与逻辑服务的桥梁。

在这样的实践中,DataSourceControl是整个数据展现的中心,也是一个桥梁。或许相当于MVC中的C吧。可是这在网站型的项目傍边运用有以下一些优势:

1)它能够与任何的数据绑定控件严密的合作,在最合适时刻进行数据的查询和绑定作业,不需求用户用工干涉。避免了许多情况下重得绑定的或许。

2)运用DataSourceControl,能够让后台许多为了数据绑定而写的代码,包含分页代码,通通退休。

3)运用DataSourceControl,能够便利的让某一部分数据在不同的页面进行复用,而不必供给杂乱的查询条件和所需的查询接口调用。

4)DataSourceControl能够封装查询参数的传递。比方你的查询参数是从URL而来,那么你彻底就能够把参数的处理交给DataSourceControl了。

5)DataSourceControl在数据提交时字段的主动映射方面十分的有优势,。

6)DataSourceControl十分灵敏,假如咱们的页面外观上不需求变化,只是在数据源需求进行一些修正,那么这时只需求修正DataSourceControl即可。

这样做今后,项目中或许会有许多DataSourceControl,可是一起咱们能够削减的是页面后台代码,让偶然的一些服务器代码写在aspx文件中,让页面更易于保护,不必编译就能够收效。一起假如你把DataSourceControl放在一个独立的Library中,那它的复用就愈加的简略了。

相同的,这样形式也不是到处都能用的。只适用于WebForm的数据绑定控件。(关于数据绑定控件的功用我就不再多说了。老赵现已解说了十分清楚了,重复一点数据绑定控件生成HTML的功用彻底没有问题,特别是它的组件化的思维十分的优异。)

***,给出一种最为简略的复用。比方你的项目中有许多的枚举类型,在页面上你要显现这些枚举或许会需求一些代码。这时候咱们能够写一个 EnumDataSource,只需在页面上给EnumDataSource指定一个枚举的类型,这时由EnumDataSource去读取枚举相关的称号,值和中文描绘。关于所以有的枚举都运用EnumDataSource来绑定,不管是DropDownList仍是CheckBoxList,那么你是不是觉得的十分的简略呢?以上介绍ASP.NET中的DataSourceControl基类。

【修改引荐】

  1. 微软发布ASP.NET MVC 2预览版 多项功用更新
  2. ASP.NET服务器自定义控件安全原则
  3. ASP.NET编程标准之编码标准浅析
  4. 关于ASP.NET Session的一点知道
  5. ASP.NET编程东西ASP.NET Web Matrix具体介绍
转载请说明出处
知优网 » ASP.NET中的DataSourceControl基类

发表评论

您需要后才能发表评论