日期:2011-09-01  浏览次数:20428 次

ASP.NET技术从1.0版本升级到1.1变化不是很大。然而,从ASP.NET 1.x升级到2.0,却不是件轻而易举的事情。ASP.NET 2.0技术增加了大量方便、实用的新特性。ASP.NET 2.0主要提供控件、页面框架、服务与APIs等3个方面的技术特性。

 

   

    控件

        在ASP.NET 1.x时代,由于内置服务器控件数量有限、功能覆盖面窄,因此,开发人员怨声载道。为了消除这个技术软肋,ASP.NET 2.0做出了突破性改进。在ASP.NET 2.0中,新增数十个服务器控件。根据控件功能特征,可分为:数据控件(包括数据源控件和数据绑定控件)、登录系列控件、Web部件、站点导航控件和其他控件等。这些服务器控件对于提高工作效率,降低开发成本有着重要作用。

    页面框架

        在页面框架方面,ASP.NET 2.0同样做出了重大改进,主要体现在以下4项技术特性:母版页、主题和皮肤、编译机制和本地化。母版页特性在大型Web站点中应用广泛,它能够在一定程度上代替框架页功能,从而迅速建立具有统一布局和外观的页面,并且有效降低维护人员的工作强度。主题和皮肤是ASP.NET 2.0的一项新增功能,使用此功能可以一次性设置一种类型的服务器控件外观样式。该外观可方便地应用于单个页面、整个Web应用程序,甚至整个服务器。在应用程序编译方面,ASP.NET 2.0提供了几种替代方案,从而扩大了编译的选择范围,开发人员可以根据特定需要进行选择。另外,ASP.NET 2.0在本地化方面也做出了一些改进。

    服务与APIs

        这个部分包括的新特性在ASP.NET 2.0中占有较大比例,主要包括成员资格管理、角色管理、用户配置、数据缓存、配置与管理工具等。利用这些功能,可以快速实现用户和角色管理、个性化用户配置、数据缓存、应用程序可视化配置等任务。以成员资格和角色管理功能为例,在ASP.NET 1.x时代,实现这两项功能是比较繁琐和困难的;而在ASP.NET 2.0中不仅提供默认数据库表,而且只需调用几个简单的方法,就能够轻松地实现成员和角色管理功能。

 


一、新增服务器控件
 
在ASP.NET 1.x时代,有很多开发人员对其中的内置服务器控件提出批评。主要的观点是ASP.NET 1.x提供的控件数量太少,难以满足日益增长的开发需求,无法更快更好地开发应用程序。为了弥补ASP.NET 1.x的不足,ASP.NET 2.0新增了数十个服务器控件。根据控件功能,可以分为站点导航控件、数据控件(包括数据源控件和数据绑定控件)、登录系列控件、Web部件和其他服务器控件等。熟练使用这些服务器控件对于提供工作效率、减低开发成本有着重要意义。


1、站点导航控件
  
在ASP.NET 1.x时期,微软发布了一组IE Web Control控件(非内置控件),其中包括一个实现树形结构的TreeView控件,它就是典型的站点导航控件。在ASP.NET 2.0中,不仅包含和扩展了原有的TreeView,而且还新增了另外两个控件。

站点导航控件主要用于实现站点页面导航功能。站点导航控件包括SiteMapPath、Menu和TreeView控件。SiteMapPath控件能够根据站点导航信息,准确定位当前页面所处整个Web站点的位置,同时,使用层次化表示方法,将位置信息显示为有序的静态文本或者超链接。另外,还可以通过调整相关属性,自定义位置信息的外观以及实现数据绑定等功能。Menu控件可构建与Windows应用程序类似的菜单。该控件不仅可与多种数据源控件集成,而且还可以支持自定义外观、事件处理等功能。TreeView控件主要用于显示树形结构,该树与Windows资源管理器中的树类似。同时,该控件还支持数据绑定、自定义外观等功能。

2、数据控件
ASP.NET 2.0的数据控件可细分为两类:一类是数据源控件,另一类是数据绑定控件。数据源控件包括SqlDataSource、AccessDataSource、XmlDataSource、SiteMapDataSource和ObjectDataSource。这些控件主要实现连接不同数据源、数据检索和修改功能,例如,查询、排序、分页、筛选、更新、删除和插入等。数据绑定控件主要包括GridView、DetailsView和FormView等。这些控件可与数据源控件配合,将获取的数据以不同形式显示在页面上。由于数据源控件和数据绑定控件支持良好的可视化设计时功能,因此,当利用Visual Studio 2005实现数据访问时,甚至不需要编写任何代码就能够完成任务。

3、登录系列控件
很多Web站点都提供了用户登录验证以及相关功能。常见功能包括用户登录、创建新用户等。总体而言,实现这些功能的基本方法比较类似,然而,由于开发人员的水平差异,可能造成一些不必要的漏洞和错误。为了解决这个问题,ASP.NET 2.0将与登录验证相关的实现集成为登录系列控件。这些控件包括:Login、LoginName、LoginView、LoginStatus、PasswordRecovery、ChangePassword和CreateUserWizard。利用这些控件可以轻松实现登录验证、创建新用户、显示登录状态、显示登录用户名、更新和重置密码等。出于灵活性考虑,登录系列控件不仅提供了大量成员对象,而且还支持自定义模板功能(部分控件支持)。另外,登录系列控件还加强了安全方面的控制。例如,默认情况下,登录系列控件是以纯文本形式工作于HTTP上。如果应用程序对安全性十分关注,那么可以使用带SSL加密的HTTPS。
Login控件用于实现用户登录验证,CreateUserWizard控件用于创建新用户。可能读者会沿袭ASP.NET 2.0之前的思路,认为实现以上两种应用需要添加多个文本框、按钮等元素,并设计实现数据库、数据访问逻辑等。实际上,使用Login和CreateUserWizard控件实现以上应用,非常简单,简单到不需要编写任何代码,不需要自建数据库,只需添加和设置控件即可。

4、web部件
Web部件是ASP.NET 2.0新增功能。如果曾经开发应用过SharePoint,那么对Web部件应该不会感到陌生。ASP.NET 2.0的Web部件功能包括多个服务器控件,例如,实现WebPart控件管理和控制的WebPartManager、实现编辑WebPart控件的EditorZone和EditorPart系列控件、实现目录管理的CatalogZone和CatalogPart系列控件、实现WebPart通信的ConnectionZone控件等。利用它们可以创建具有高度灵活性和个性化的Web站点。

5、其他服务器控件
除上文介绍的4类控件之外,ASP.NET 2.0新增了其他服务器控件。这些控件包括BulletedList、HiddenField、FileUpload、ImageMap、MultiView(View)和Wizard。

二、母版页
 

每个站点都应具有统一的风格和布局。不同技术时代,给出了不同的解决方案。例如,在ASP技术时期,使用#include命令,在ASP.NET 1.x时期,主要使用用户控件。ASP.NET 2.0技术时期,则可以使用构建页面布局框架的技术特性—母版页。

母版页是扩展名为.master的文件,其代码内容和结构与普通.aspx文件类似。注意代码中包括一个或多个ContentPlaceHolder控件。在创建母版页时,需要将页面公共部分存储于母版页中,例如,页面公用的页头、页尾等,而页面非公共部分则使用ContentPlaceHolder控件实现占位。内容页文件虽然扩展名为.aspx,但是代码内容和结构与普通.aspx文件代码相距甚远,其代码分为两个部分:代码头声明一个或多个Content控件。开发人员需要在内容页代码头绑定母版页,同时,将页面非公共部分内容设置在Content控件标签之间。在运行时