ASP.NET 2.0
入门经典
ASP.NET 2.0 入门经典(第 4 版)
20 世纪后期计算机领域发生了空前的变化。对于那些以前只在卧室打转的人
或终日不见阳光的瘾君子而言,Internet 的急速发展给他们带来了前所未有的
乐趣。在 20 世纪 90 年代之前,承认自己用计算机处理工作几乎是一件令人尴尬
的事情,然而突然之间人人都希望能拥有一台计算机。每种业务都争先恐后地和
Internet 扯上关系,而且很多家庭都希望拥有自己的 Web 站点。如果一定要为
Internet 的急速发展寻找一个技术代名词,那么这项技术非 Web 浏览器莫属。
但是,如果没有可以查看的内容,浏览器就变得一点实用价值都没有了。用户需
要信息,而 Web 站点就像雨后春笋一样蓬勃发展,其主题丰富多彩,包罗万象。
20 世纪 90 年代末期,世界充满剧变。一些商业帝国的根基就是一个最简
单的想法—— 搜索引擎(Google)或者在线书店(Amazon)。人人都想知道怎样给
自己建一个 Web 站点。HTML(HyperText Markup Language,超文本标记语言)可
以实现人们的这个愿望,但很快人们就发现它的功能太简单了。开发人员可以显
示图片和文本,但如果您想要的不止这些,那么应该怎么办?如果希望站点具有
反应能力,也就是说能从用户接收信息并自动进行更新而不需要开发人员每次都
编写新的页面,应该怎么办?如果希望将某个数据库连接到 Internet 上,或者
希望显示一个股票目录,或者希望向每个访问站点的用户提供个性化的设置,或
者只是希望向每个访问站点的家人或朋友提供漂亮的外观,又该怎么办?
这方面的竞争一直在继续,人们已经开发出好几种技术,包括 CGI、PHP 和
Java。Microsoft 参与这项竞争的技术是 ASP,它最引人注目的特点是比其他同
类技术简单,容易入门。但是它也有很多让人激动的功能—— 当用户在 Web 站点
内的页面之间浏览时可以保存用户的详细信息以及 Calendar 和 Rotator 等控件,
可以把这些控件直接放置到页面中,就像使用 HTML 标记一样。ASP 获得了巨大
的成功。Microsoft 做了进一步的开发;它创建了.NET Framework,而 ASP.NET
则成为 ASP 技术的“升级”版本,使用的是其成熟的编程语言 VB.NET 和 C#。这
个变化在功能方面是一个很大的进步,但是 Microsoft 在一定程度上迷失了一个
很重要的目标—— 简单性。Web 站点的开发突然之间需要高昂的咨询费用,同时
需要顶尖的美工人员。对于那些一开始缔造站点繁荣的人而言,它已变得高不可
攀。
ASP.NET 2.0 在这个方面向正确的方向回退了一大步。Microsoft 意识到,
人们在开发 Web 站点的时候不喜欢做的一件事就是编写代码。代码很枯燥且令人
讨厌。然而,Microsoft 也意识到有相当一部分人仍然靠编写代码为生。而且,
这些编程人员不得不开发同样的功能,并一再重复。登录机制、菜单系统、购物
车、用于站点中所有页面的站点标题—— 这些是很多 Web 站点都需要的功能。此
时两个指导原则要发挥作用:简化它们对新手的使用难度,并减少开发人员必须
重复的工作量。ASP.NET 2.0 声称可以“减少 70%的代码”;ASP.NET 2.0 还带
有很多控件,这些控件使得开发人员在数分钟之内就可以创建登录系统和菜单。
2003 年下半年的时候,我们已经看到过名为 ASP.NET 2.0 的新版 Active
Server Pages。每个人都知道这些声明决不是刻意夸大,开发人员创建 Web 应用
程序的方法将从根本上发生变化。Microsoft 扩充了 ASP 以前版本的强大功能,
同时在很大程度上减少了实现这些功能所需的工作。实现的简化意味着开发复杂
站点的费用将缩减。或者,换一种说法,现在能够开发复杂站点的开发人员将大
大增加。
另外,ASP.NET 2.0 还附带了一个新的、不算昂贵的开发工具用于创建 Web
站点:Visual Web Developer Express。Microsoft 以前开发的用于辅助创建 Web
站点的工具要么已经销声匿迹(Front Page),要么从来没有得以普及(Visual
Interdev),但这次开发的工具找准了方向。Visual Web Developer 将成为 Visual
Studio.NET 套件的一部分,但名为 Visual Web Developer Express 受限版本的
售价并不昂贵。利用它您可以在数分钟之内通过拖放控件创建一个站点,开发人
员也能立刻识别出来,并简化页面的创建和管理。
本书将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的 Web
站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。
然后将学习怎样使用 Visual Web Developer Express(VWD)构建 ASP.NET 2.0 站
点。
具体地说,本章包含以下 5 个主题:
● 简单介绍 ASP.NET 2.0
● 回顾 ASP.NET 2.0 解决的 Internet 编程问题
● 解释 ASP.NET 2.0 是怎样适应其他技术的
● 浏览一个由 ASP.NET 2.0 构建的站点的动态功能
● 理解创建 ASP.NET 2.0 页面(ASPX)将要使用的工具—— Visual Web Developer
Express(VWD)
在以前的书籍中,如果在学习本章之后您能够创建简单的页面,那么我们的
目的就算达到了,但 ASP.NET 2.0 鼓励学习更多的内容,在第 2 章结束的时候,
您将知道一个正在运行的 Web 站点的结构和架构。本书的主要练习是为一个名为
Wrox United 的足球队创建 Web 站点,显示他们的新闻和比赛结果、出售他们的
产品、拍摄他们的记录片,并根据登录的用户是客户还是管理员来显示不同的页
面。作为惯例,我们将提供一些练习帮助复习本章中讨论的概念。
1.1 将要创建的站点
打开 www.wroxunited.net 查看一下站点(主页如图 1-1 所示)。这个站点完
全使用 ASP.NET 2.0 创建,也是在本书中将要创建的站点。同时,它也是在本章
和第 2 章中将要学习创建的一个微型工作模型。
图 1-1
在主页上可以看到一个菜单系统、一个登录控件和一些新闻条目—— 如果使
用旧版的 ASP 或 ASP.NET,创建这些功能都将耗费开发人员大量的时间并编写很
多代码。以登录机制为例,开发人员必须考虑接受用户 ID 和口令、根据一组已
经存在的用户和口令进行核对、确保口令不会以任何方式弄错并确保口令的传送
安全可靠。因此,开发人员需要进行很多相对而言不那么重要的工作,没有一两
个小时是不能完成这个功能的。现在,这只需要几秒钟的时间。
单击 View Page Source 链接—— 现在不理解这些代码并不要紧—— 用户将
看到少于 10 行的 ASP.NET 2.0 代码:
<%@ Page Language="VB" Trace="false" MasterPageFile="~/site.master"
AutoEventWireup=”false” codefile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register TagPrefix="wu" TagName="News" Src="News.ascx" %>
<asp:Content ID="Content1"ContentPlaceHolderID="mainContent"Runat="server">
<h2>Welcome to the Wrox United Web site.</h2>
<p>We're a great football team. No really, we are. Don't take any notice
of our past performance. We're just unlucky.</p>
<wu:news id="News1" runat="server" ItemsToShow="5"></wu:news>
</asp:Content>
逐个单击菜单中的不同链接,看看比赛成绩表和固定列表是怎样工作的,同
时看代码只有廖廖数行。请注意站点的主题和样式是如何保持一致的,但是现在
无法知道这一点是如何实现的。欢迎来到 ASP.NET 2.0 的世界。从现在开始,它
将彻底改变您创建 Web 站点的方式。稍后您将更详细地了解到隐藏在 Wrox
United 应用程序后面的功能,但首先介绍 ASP.NET 2.0 提供了哪些功能。
Internet 上的 World Wide Web(WWW)提供了广阔的互联性。实际上每个使用
计算机的人都能够访问网络。但这种随处可见的连接却少有标准可遵循。信息以
ASCII 字符的形式传递,没有内置的机制实现到机器层代码转换的功能。客户的
需求非常少—— 事实上 Internet 本身并没有任何标准规定浏览器该怎样工作,
因此计算机领域同时存在着为不同的操作系统和平台编写的多种浏览器。在
2005 年,我们很容易忘记 Internet 是设计用于传递带有图片和链接的静态文本
页面的。
近 15 年来 Internet 编程的发展可以说是这样的一个过程:在不违反设计页
面时追求最大简单性的 WWW 原则的同时,努力向用户提供高级的、复杂的功能。
用户希望使用页面的感觉就像使用文字处理和数据库访问等桌面应用程序那样。
但这样的复杂程度在最小化配置的情况下要在 Web 上实现是很困难的。
ASP.NET 2.0 从根本上减少了开发复杂 Web 站点的困难。Microsoft 的
ASP.NET 开发小组考察了大量的页面、站点和场景,并在此基础上创建了一组站
点所有者的常见目标。这个列表中包含了大约 20 个目标,包括读取数据、统一
的登录和身份验证过程、一致的站点外观以及不同浏览器平台的页面定制。开发
小组于是着手编写代码以正确的方法实现这些目标,从而最大限度地减少开发人
员的工作量并由 Microsoft 对代码进行广泛的测试。这些功能包含在 ASP.NET
2.0 的类(封装好的可供使用的代码集)中。结果非常简单—— 开发人员只需将
Microsoft 在 ASP.NET 2.0 中开发的组件装配到一起,就可以非常迅速地组合出
(而且很容易地维护)一个复杂的站点。开发人员现在只需简单地将一个控件拖放
到页面上并在向导中回答一些问题就可以了,而不需要编写数十行的代码(就像
在旧版的 ASP 中所做的那样)。这个控件将为页面产生一些代码,服务器将使用