惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog

博客园 - 麦子

高级语言程序设计实验大纲 面向对象程序设计实验大纲 参考后原创:ASP.NET2.0个性化注册登录系统.rar 关于《ASP.NET2.0网站开发实例教程》中1.1.4 Default.aspx页面的实现的说明 转贴:关于membership实用性讨论 ASP.NET2.0 自定义CreateUserWizard asp.net2.0 站点登录,导航与权限管理,角色及用户信息存储于SQL2000的的方法。 装了VS2005再装IIS的小问题 《 C 语言程序设计》教材中涉及到的常用词汇荟萃 动态网页设计(全)部课件和进度表, C语言程序课件和进度表 03级函授毕业证领取通知 正式入火(10月1日) 电子商务基础课件(10.25更新) 搬家(53天) 准备搬家,乱 装修相片(第50天拍,全部,25号更新) 装修(48天,装修全部价格清单,装好窗帘,晒书) 装修(46天,家具基本上弄好啦) 装修(43天,安装新家具啦)
转贴:《ASP.NET2.0开发指南》样单,第1章 ASP.NET 2.0概述
麦子 · 2006-12-28 · via 博客园 - 麦子
 

1 ASP.NET 2.0概述

本章要点

 .NET技术发展回顾

 ASP.NET 2.0设计目标

 ASP.NET 2.0新特性

欢迎来到ASP.NET 2.0的世界!

从本章开始,将向读者详细介绍ASP.NET 2.0技术。相对于ASP.NET 1.x而言,ASP.NET 2.0增加了很多新技术特性。虽然这些新特性,能够帮助开发人员明显提高工作效率,但同时也带来了学习方面的困难。例如,每个特性都包括众多概念、控件、应用方法等,这些内容对于开发人员,尤其是从未接触过ASP.NET技术的人员来讲都是全新的。为了帮助读者对将要学习的内容,建立宏观概念,本章首先介绍ASP.NET技术的发展历史,然后,说明ASP.NET 2.0的设计目标,最后,对ASP.NET 2.0的新特性进行概括性介绍。

1.1 .NET技术发展回顾

2000.NET技术崭露头脚,到2005年末推出.NET 2.0,微软公司为推广.NET技术可以说是不遗余力。下面简单介绍一下.NET技术的发展历程。

    20006月,微软公司总裁比尔·盖茨先生在一次名为论坛2000”的会议上发表演讲,描绘了.NET的美景。

    20021月,微软公司公布.NET Framework 1.0正式版。与此同时,Visual Studio.NET 2002也同步发行。

    2003423日,微软公司推出.NET Framework 1.1Visual Studio.NET 2003。这些重量级的产品都是针对.NET 1.0的升级版本。

    20046月,在TechEd Europe会议上,微软发布.NET Framework 2.0 Beta1Visual Studio 2005 Beta1。同时,还发布多个精简版(Express Edition),其中包括Visual Web Developer 2005Visual Basic 2005Visual C# 2005SQL Server 2005 Express Edition等。

    20054月,微软公司发布Visual Studio 2005 Beta2测试版。

    200511月,微软公司发布Visual Studio 2005SQL Server 2005正式版。

.NET 1.0发布后,也就是2002年及其随后一两年的时间内,.NET技术一直处在发展初期。虽然微软公司不遗余力的宣传.NET技术,但是,使广大开发人员尤其是软件开发商接受.NET,则需要一个比较漫长的过程。.NET 1.1发布后,学习和使用.NET技术的热潮开始不断涌现。目前,微软发布的.NET最新版本是2.0.NET 2.0的发布是.NET技术走向成熟的标志。尤其是用于Web应用程序开发的核心技术,ASP.NET 2.0更是万众瞩目,不断吸引着越来越多的目光。为了使读者对ASP.NET 2.0建立初步概念,首先介绍ASP.NET 2.0的设计目标。

1.2 ASP.NET 2.0设计目标

ASP.NET 2.0的开发代号是“ASP.NET Whidbey”WhidbeyVisual Studio 2005的开发代号。由于ASP.NET应用程序通常使用Visual Studio 2005创建,因此,ASP.NET 2.0被称为“ASP.NET Whidbey”也确实恰如其分。

ASP.NET 2.0设计过程中,微软公司深入市场,针对大量开发人员和软件公司的需求,进行了卓有成效的研究。这些艰苦细致的工作,为ASP.NET 2.0的开发打下了良好的基础。同时,也为ASP.NET 2.0这一产品设定了宏伟目标。ASP.NET 2.0设计目标的核心用一个词来形容––––简化。围绕这个核心,建立了以下几个主要设计目标。

    提高开发效率

        设计目标是将应用程序代码行数减少约70%,以提高开发效率,进而开发人员可以将更多的注意力转移到如何实现业务逻辑上来,彻底改变过去那种需要编写很多重复性代码的状况。对于部分开发工作,尽量做到在不写或者少写代码的情况下,也可完成任务。

    简化管理和维护工作

        ASP.NET 1.x技术中,Web应用程序的管理和维护主要通过人工方式,即对XML配置文件(例如machine.configweb.config)进行处理来完成。这种方式易于出错。在ASP.NET 2.0中,目标是创建图形化管理工具,简化管理和维护工作。

    提高性能和可伸缩性

        ASP.NET 1.x中,应用程序性能和可伸缩性一直是两个饱受争议的话题。然而,无论结果如何,所有人共同的观点是必须对性能和可伸缩性进行改进。ASP.NET 2.0在以上两个方面进行了重大改进,主要体现在优化内部处理机制、扩展高速缓存功能以及增加对64位服务器支持等方面。

    扩展对于不同终端设备的支持能力

        优化ASP.NET 2.0技术,提高对于浏览器、PDA、移动电话等终端设备的支持能力,并且增加对各种未来终端设备的支持。另外,通过扩展控件功能,使得同一控件能够输出支持多种设备的代码。

ASP.NET 2.0的设计目标相当宏伟壮丽,以上只是简单介绍了其中的几个主要目标。围绕设计目标,ASP.NET 2.0新增了多个技术特性。下一节将对ASP.NET 2.0新特性进行概括性介绍。

1.3 ASP.NET 2.0新特性

ASP.NET技术从1.0版本升级到1.1变化不是很大。然而,从ASP.NET 1.x升级到2.0,却不是件轻而易举的事情。ASP.NET 2.0技术增加了大量方便、实用的新特性。图1-1所示列举了ASP.NET 2.0的主要技术特性。

如图1-1所示,ASP.NET 2.0主要提供控件、页面框架、服务与APIs3个方面的技术特性。

1-1 ASP.NET 2.0技术特性

    控件

        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中不仅提供默认数据库表,而且只需调用几个简单的方法,就能够轻松地实现成员和角色管理功能。

1.3.1 新增服务器控件

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,而且还新增了另外两个控件。图1-2所示显示了站点导航控件的应用效果。

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

2.数据控件

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

1-2 站点导航控件应用效果图                   1-3 数据控件应用效果图

1-3中包括两个表格。左边的表格列举了数据库表中的数据,同时,还提供了分页和显示详细资料的按钮。该表格使用GridView控件创建。右边的表格显示左表中被选中行的详细数据,还提供了编辑、删除和新建等功能按钮。该表格使用DetailsView控件创建。有关数据控件以及图1-3中所示应用的实现,将在第91011章中详细介绍。

3.登录系列控件

很多Web站点都提供了用户登录验证以及相关功能。常见功能包括用户登录、创建新用户等。总体而言,实现这些功能的基本方法比较类似,然而,由于开发人员的水平差异,可能造成一些不必要的漏洞和错误。为了解决这个问题,ASP.NET 2.0将与登录验证相关的实现集成为登录系列控件。这些控件包括:LoginLoginNameLoginViewLoginStatusPasswordRecoveryChangePasswordCreateUserWizard。利用这些控件可以轻松实现登录验证、创建新用户、显示登录状态、显示登录用户名、更新和重置密码等。出于灵活性考虑,登录系列控件不仅提供了大量成员对象,而且还支持自定义模板功能(部分控件支持)。另外,登录系列控件还加强了安全方面的控制。例如,默认情况下,登录系列控件是以纯文本形式工作于HTTP上。如果应用程序对安全性十分关注,那么可以使用带SSL加密的HTTPS。图1-4和图1-5所示显示了登录系列控件中Login控件和CreateUserWizard控件的应用效果。

1-4 Login控件应用效果图            1-5 CreateUserWizard控件应用效果图

Login控件用于实现用户登录验证,CreateUserWizard控件用于创建新用户。可能读者会沿袭ASP.NET 2.0之前的思路,认为实现以上两种应用需要添加多个文本框、按钮等元素,并设计实现数据库、数据访问逻辑等。实际上,使用LoginCreateUserWizard控件实现以上应用,非常简单,简单到不需要编写任何代码,不需要自建数据库,只需添加和设置控件即可。在本书的第16章中详细探讨了包括以上两个控件在内的7个登录系列控件的应用。

4Web部件

Web部件是ASP.NET 2.0新增功能。如果曾经开发应用过SharePoint,那么对Web部件应该不会感到陌生。ASP.NET 2.0Web部件功能包括多个服务器控件,例如,实现WebPart控件管理和控制的WebPartManager、实现编辑WebPart控件的EditorZoneEditorPart系列控件、实现目录管理的CatalogZoneCatalogPart系列控件、实现WebPart通信的ConnectionZone控件等。利用它们可以创建具有高度灵活性和个性化的Web站点。图1-6所示展示了利用Web部件技术构建的http://my.msn.com站点。

1-6 Web部件应用效果图

使用Web部件构建的页面可以为用户提供多种个性化功能。例如,使用图中“Move”选项对WebPart控件进行布局调整,使用“Delete”“Change details...”选项对WebPart控件进行配置和管理等。另外,使用Web部件还可以实现WebPart控件之间的通信、目录管理等功能。有关Web部件的详细内容,可参考本书第14章。

5.其他服务器控件

除上文介绍的4类控件之外,ASP.NET 2.0新增了其他服务器控件。这些控件包括BulletedListHiddenFieldFileUploadImageMapMultiViewView)和Wizard。在本书的第8章中详细介绍了这些控件的基本功能、应用方法等。

1.3.2 母版页

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

母版页是扩展名为.master的文件,其代码内容和结构与普通.aspx文件类似。注意代码中包括一个或多个ContentPlaceHolder控件。在创建母版页时,需要将页面公共部分存储于母版页中,例如,页面公用的页头、页尾等,而页面非公共部分则使用ContentPlaceHolder控件实现占位。内容页文件虽然扩展名为.aspx,但是代码内容和结构与普通.aspx文件代码相距甚远,其代码分为两个部分:代码头声明一个或多个Content控件。开发人员需要在内容页代码头绑定母版页,同时,将页面非公共部分内容设置在Content控件标签之间。在运行时,用户不能直接请求母版页,只能请求访问内容页。此时,母版页和内容页将合并生成结果页,结果页面包含页面公共部分和非公共部分的运行结果。图1-7所示显示了母版页功能的应用示例图。

1-7 母版页功能应用效果图

1-7所示的内容节选自第5章的示例。在该应用程序中,母版页实现了页头和页尾等公共部分,中间的非公共部分则包含在内容页中。这样,母版页可被绑定在不同的内容页中,从而提高了开发人员工作效率,降低了开发和维护强度。

以上概括性介绍了母版页功能。在第5章中,读者不仅能够更加详细地了解母版页的基本功能,而且还可以接触到一些高级应用。例如,在母版页中实现嵌套,即父母版页嵌套一个子母版页;内容页绑定子母版页。又如,在内容页中访问母版页控件和属性、动态加载母版页、母版页应用范围、缓存设置等。

1.3.3 主题和皮肤

在未接触主题和皮肤功能之前,你可能已经习惯于使用级联样式表(CSS)设置页面和控件等元素外观和样式。虽然在ASP.NET 1.x开发中,CSS同样适用,但是如果碰到一些复杂控件,例如,CalendarGridView,那么设置CSS将变得比较困难。如果能够完全根据控件自身外观和样式属性,而不仅限于CSS中规定元素,来设置服务器控件,那么整个实现过程将变得比较简单。ASP.NET 2.0中的主题和皮肤功能就能够提供这样的便利。

所谓主题是指页面和控件外观属性设置的集合。主题由一组文件构成,可能包括皮肤文件、CSS文件、图片和其他资源等。这些文件必须存储在App_Themes文件夹中。皮肤文件是主题的核心内容。这种文件的扩展名为.skin,其中包含各种服务器控件的各种属性设置。利用主题功能,不仅能够定义页面和控件的外观,还可以在所有Web应用程序、单个Web应用程序的所有页面或者单个Web页面中,快速一致地应用所定义外观。另外,还可以根据应用程序需要动态加载主题。图1-8所示显示了动态加载主题的应用效果。

1-8 主题和皮肤功能应用效果图

如图1-8所示,Calendar控件默认加载Red主题,头部显示年月和星期的背景为红色。当启用Blue主题后,Calendar控件的头部背景将显示为蓝色,就好像是为控件换了层皮肤一样。如果不使用主题和皮肤功能来实现以上示例,那么实现过程可能比较繁琐,而且维护和修改也不方便。在使用主题和皮肤功能之后,则变得非常简单。以上示例选自第6章,其中详细介绍了示例涉及的理论和具体实现过程。

1.3.4 个性化用户配置

存储和访问用户配置数据一直是开发人员关注的热点。在ASP.NET 1.x时代,实现这一功能主要通过SessionApplication等对象或者采用数据库存储的方法。这两种方法都有着本身不可克服的缺点。例如,使用前者容易发生数据丢失的情况,而使用后者比较繁琐,例如,需要自行设计实现数据库及访问数据的代码。为了解决以上问题,ASP.NET 2.0新增了个性化用户配置功能。

个性化用户配置功能主要用于存储单个用户配置数据,这些数据可以是简单数据类型,也可以是复杂数据类型,甚至自定义对象等。同时,单个用户既可以是匿名用户,也可以是注册用户。默认情况下,所有用户配置数据都存储在SQL Server数据库中,并且无需自行创建和维护该数据库,这些工作都由ASP.NET 2.0自动完成。个性化用户配置功能还支持从应用程序中任何位置访问的多种强类型API,以方便存储、显示和管理用户配置信息。使用个性化用户配置功能非常简单。首先,在Web.config文件中定义配置信息名称、数据类型等,然后,调用与用户配置功能有关的强类型API,例如,Profile实现对用户配置信息的存储、访问和管理等应用。图1-9所示显示了使用个性化用户配置功能实现存储和访问购物车信息的应用效果图。

如图1-9所示中,左半部分列举了网上商店的商品列表;右半部分列举了购物车内商品和总价。当用户在商品列表中选定所需商品,并单击购买按钮后,该商品将自动添加到购物车中。如果用户需要移除购物车中商品,只需单击清除按钮即可。另外,该应用允许匿名用户使用购物车。同时,当匿名用户通过注册成为注册用户之后,示例还支持将匿名时期的购物车信息无缝迁移到注册用户购物车中。虽然以上示例的功能稍显复杂,但是实现方法简单。整个实现方法的核心是使用个性化用户配置功能。有关该功能介绍,以及示例的实现过程将在第13章进行详细讲解。

1-9 个性化用户配置功能应用效果图

1.3.5 成员资格和角色管理

多数站点的后台管理中,几乎都包括用户成员和角色管理功能,例如,新建、修改、删除用户和角色,为用户设置角色,管理角色中的用户等。在使用ASP.NET 1.x版本时,实现这些功能的主要方法是,首先,设计创建成员库表、角色库表等,然后,编写代码实现具体功能。实现所有功能可能需要花费不少的时间和精力,并且过程繁琐,容易出现错误。然而,使用ASP.NET 2.0新增的成员资格和角色管理功能则可以很好地解决这个问题。

成员资格和角色管理功能的核心是利用自动生成的数据库表、多个实现管理功能的API、成员资格和角色管理提供程序,实现模块化和自动化的成员资格和角色管理模式。具体而言,包括创建和管理用户和角色信息、实现对多种数据源中用户和角色信息的管理、验证访问应用程序的用户凭证、支持使用Cookie缓存角色信息、实现角色管理与成员资格管理等功能的集成。图1-10和图1-11所示分别显示了利用成员资格和角色管理功能实现的用户和角色管理应用。

1-10 成员资格管理功能应用效果图              1-11 角色管理功能应用效果图

1-10所示显示了成员资格管理功能应用,其中包括用户列表,启用、编辑和删除用户功能等。图1-11所示显示了角色管理功能应用,其中包括新建角色、角色列表、编辑和删除角色、为用户设置角色等。实现以上示例过程中,既不需要创建SQL Server数据库表,也不需要实现数据库访问程序,只需根据业务逻辑调用成员资格和角色管理API。具体内容,可参考第15章内容。

1.3.6 配置和管理工具

为了快速方便地实现应用程序配置和管理,ASP.NET 2.0提供了两个内置的可视化工具:一个是ASP.NET MMC管理单元,另一个是Web网站管理工具。图1-12所示显示了ASP.NET MMC管理单元用户界面。

1-12 ASP.NET MMC管理单元

如果计算机中安装了Internet信息服务(IIS)和.NET Framework 2.0,那么打开IIS即可使用ASP.NET MMC管理单元。利用该工具可对指定应用程序的连接字符串、应用程序配置、自定义错误、授权、身份验证、公共编译、页和运行时、全球化和标识、应用程序状态、位置等方面进行全面设置。所有设置结果都将显示在应用程序Web.config文件中。从这一角度而言,ASP.NET MMC管理单元是一个用于编辑Web.config文件的图形化工具。

1-13所示显示了Web网站管理工具用户界面截图。

1-13 Web网站管理工具

如果使用Visual Studio 2005创建ASP.NET 2.0应用程序,那么可以调用Web站点管理工具。与ASP.NET MMC管理工具不同的是,Web站点管理工具是一个Web应用程序,而不是一个Windows应用程序。Web站点管理工具提供了对指定Web应用程序的安全、应用程序配置、提供程序等多方面的设置。例如,创建管理用户和角色信息、设置SMTP参数、设置各种提供程序等。

有关以上两个可视化管理工具的介绍,可参考第17章内容。

1.4 小结

本章概括性地介绍了ASP.NET 2.0技术,包括技术发展历史、ASP.NET 2.0的设计目标、各种新功能特性等。通过这些内容,相信读者已经认识到ASP.NET 2.0绝非ASP.NET 1.x的简单技术升级。这项技术中包括的大量新特性将能够帮助开发人员更快、更好地实现各种复杂的Web应用程序。