- 零基础学ASP.NET 3.5
- 王向军 王欣惠编著
- 494字
- 2024-12-21 00:16:40
第一篇 ASP.NET开发快速起步
第1章 第一个ASP.NET程序
本章首先教会读者如何搭建ASP.NET的开发环境,因为如果没有环境,那光谈技术就是空谈。搭建好开发环境后,本章还会通过一个简单的ASP.NET应用程序,给读者分析ASP.NET程序的组成。本章首先搭建Visual Studio 2008(以下简称VS2008)开发环境,然后介绍VS2008环境的各个组成,最后创建ASP.NET 3.5应用程序,并分析ASP.NET的组成和配置。
1.1 选择开发工具:Visual Studio 2008
VS2008是微软推出的专门支持.NET 3.5框架的开发工具,这个工具非常庞大,但提供了一些日常ASP.NET开发所需要的组件,可帮助初学者缩短学习过程。本节主要介绍这个有力的开发工具。
1.1.1 了解Visual Studio 2008的功能
进行.NET开发的工具不是只有Visual Studio,最常见的如Windows自带的记事本,也可以进行.NET程序开发。但在开发人员眼里,Visual Studio还是.NET开发的首选工具。
Visual Studio是一套完整的开发工具集,其包含了大量的功能,主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。在这里,Visual Basic、Visual C++、Visual C# 和Visual J#全都使用相同的集成开发环境(IDE)。利用此IDE可以共享工具,且有助于创建混合语言解决方案,使程序可以使用不同的语言共同开发。另外,这些语言利用了.NET Framework的功能,通过此框架可使用简化ASP Web应用程序和XML Web Services开发的关键技术。
Visual Studio 2008的功能集中在以下几个方面:
❑ 交互式开发环境。提供了代码颜色设置、语法检查、IntelliSense自动完成等功能,而且使用重构功能,还可以轻松地重新构建和重新组织代码。
❑ 更优化的开发环境,直观地设计Web应用程序。注重爱好者、热衷者和学生需求的优化的开发环境。
❑ 直观地设计数据库。使用直观的WYSIWYG(所见即所得)拖放式用户界面设计器,创建美观、易于使用的Web应用程序,同时也提供IntelliSense功能,使程序人员能够快速访问可在应用程序中使用的方法和库。
❑ 轻松共享Web应用程序。使用省时的向导轻松连接数据,也可以使用“拖放”功能,将用户界面连接到数据,而无须编写代码。
以上几个方面,只是从比较大的界面和数据方面,对VS2008做了整体的功能介绍,在实际开发中,还可以看到很多细节方面的优化,读者在后面的学习中会注意到。
1.1.2 安装Visual Studio 2008所需硬件环境
在使用Visual Studio进行开发之前,需要安装该IDE开发工具。Visual Studio需要安装在Windows操作系统中,并且对系统的硬件性能及兼容性有一定的要求。具体的硬件性能及配置要求如下所示。
❑ 处理器:1 GHz处理器。建议:2 GHz处理器或双核处理器。
❑ RAM:1GB,建议:2GB。
❑ 可用硬盘空间:(不含MSDN)系统驱动器上需要1 GB的可用空间。安装驱动器上需要2 GB的可用空间。(含MSDN)系统驱动器上需要1 GB的可用空间。完整安装MSDN的安装驱动器上需要3.8 GB的可用空间。默认安装MSDN的安装驱动器上需要2.8 GB的可用空间。
❑ 操作系统:Windows 2000 Service Pack 4、Vista、Windows XP Service Pack 2、Windows Server 2003 Service Pack 1或更高版本。对于64位计算机,有下列要求:必须是Windows Server 2003 Service Pack 1 x64版本、Windows XP Professional x64版本。
❑ CD-ROM驱动器或DVD-ROM:必需。
❑ 视频:800×600,256色。建议:1024×768,增强色16位。
❑ 鼠标:Microsoft鼠标或兼容的指针设备。
1.1.3 安装Visual Studio 2008
当读者拿到Visual Studio的光盘后,首要的工作就是将其安装到计算机中。本书以Visual Studio 2008为例介绍其安装过程。
(1)将获得的Visual Studio 2008光盘放入光盘驱动器,屏幕上将会弹出如图1.1所示的对话框。其中有3个选项,但只有第一项“安装Visual Studio 2008”可以选择。
(2)单击“安装Visual Studio 2008”链接,进入下一步安装,如图1.2所示。此处可以选择是否参加微软的帮助改进安装活动,读者可以根据自己的意愿选择是否参加。进度条显示完成后,“下一步”按钮变为可用状态。
图1.1 Visual Studio安装开始界面
图1.2 Visual Studio安装准备
(3)单击“下一步”按钮,进入下一步安装,此时窗体中包含最终用户许可协议,读者需要同意其所有条款,然后输入正版序列号,如图1.3所示。然后单击“下一步”按钮,打开VS2008的正式安装界面,如图1.4所示。安装时间较长,请耐心等待。
图1.3 许可协议界面
图1.4 Visual Studio正式安装界面
图1.4中左侧所有的列表就是VS2008所需要的组件和工具,包括.NET 3.5框架、数据库文件压缩包等。此安装需要的时间比较长,安装完毕后,图1.4中的“下一步”按钮变为可用状态。
(4)单击“下一步”按钮,出现完成界面,直接单击“完成”按钮即可。
注意 安装完成后才可以选择MSDN的安装,如图1.5所示。
图1.5 安装MSDN画面
1.1.4 检查是否安装IIS
IIS 7不需要下载,一般都在Windows操作系统的安装盘内,本例检查Vista下的IIS(版本是7.0)是否安装,如果没有安装,则学习如何安装IIS。具体的步骤如下。
(1)单击“开始”|“控制面板”|“程序和功能”命令,打开“卸载和更改程序”窗口。
(2)单击控制面板左侧的“打开或关闭Windows功能”,弹出“Windows功能”对话框,如图1.6所示。(3)在图1.6中可以找到“Internet信息服务”选项,单击它以展开其所有节点,如图1.7所示。
图1.6 “Windows功能”对话框
图1.7 Internet信息服务的选项
(4)检查“Web管理工具”和“万维网服务”的所有内容,如果没有选中,则把这些内容都选中。单击“确定”按钮,会自动完成IIS安装。
安装完毕之后,要测试IIS 7.0安装是否正确。IIS 7.0正确安装之后,系统会自动建立一个默认Web站点。用户只需检验是否能够正确访问该网站,就可以判断IIS 7.0是否正确安装。具体操作步骤如下所示。
(1)单击“开始”|“控制面板”命令,打开“控制面板”窗口。
(2)双击“管理工具”图标,进入“管理工具”窗口。双击“Internet信息服务管理器”图标,打开“Internet信息服务管理器”窗口,如图1.8所示。
(3)右击在左侧的Default Web Site节点,在弹出的快捷菜单上选择“浏览”命令,系统会打开一个IE窗口显示该网页,如图1.9所示。
图1.8 “Internet信息服务管理器”窗口
图1.9 IIS测试网页
用户也可以直接打开IE浏览器,在地址栏中输入本机的网址,可以是http://localhost/(localhost代表本机的默认网址)或者http://127.0.0.1/(IP地址127.0.0.1代表本机),查看是否能打开.asp或.aspx类型的文件。如果能正常打开,就证明IIS已经正确安装和运行了。
1.2 开发第一个ASP.NET程序
安装完VS2008和IIS后,基本环境配置已经完成。本节就开始设计第一个自己的ASP.NET程序。
1.2.1 启动Visual Studio 2008,创建一个网站
为了让读者了解网站的创建过程,本节将详细地介绍网站的开发过程。详细步骤如下所示。
(1)安装Visual Studio 2008之后,在“开始”→“所有程序”→Microsoft Visual Studio 2008菜单中,单击Microsoft Visual Studio 2008可执行文件,可以启动Microsoft Visual Studio 2008程序,进入如图1.10所示的起始页。
图1.10 VS2008开始界面
(2)单击菜单栏中的“文件”→“新建”→“网站”命令,如图1.11所示。
图1.11 新建网站菜单
(3)在弹出的“新建网站”对话框中,选择“ASP. NET网站”选项,在“位置”下拉列表中选择“文件系统”选项,在路径后面单击“浏览”按钮,定位到需要保存该网站的文件路径,在“语言”下拉列表中选择“Visual C#”选项,然后单击“确定”按钮,如图1.12所示。
注意 右上角的.NET框架版本选择3.5。
Visual Studio 2008支持文件系统的Web站点,建议读者在开发阶段均采用本选项,选项位置已经在图中标注。
(4)新建的网站会自动创建解决方案,并在网站下添加一个App_Data文件夹和建立一个空白的aspx页面文件,名称为Default.aspx,还有一个配置文件web.config,如图1.13所示。
图1.12 “新建网站”对话框
图1.13 新建网站的IDE视图
1.2.2 添加控件、编写代码
创建完网站后,网站中包含一个空的Default.aspx页面,这是一个空白页面。本节就设计一个有内容含代码的页面。详细的操作步骤如下所示。
(1)在页面中添加控件。双击解决方案资源管理器中的Default.aspx文件,默认进入该页面文件的源视图,该页面编辑的是页面的HTML代码文件,单击页面编辑器底部的“设计”选项卡,切换到页面的设计视图。
(2)选择“视图”→“工具箱”命令,编辑页面弹出“工具箱”窗口。在“工具箱”窗口中,选择“标准”控件部分,找到Label控件,将其拖到页面的设计视图中,再找到Button控件,将其拖动到Label控件的下面。
(3)设计控件的属性。设定ASP.NET控件的属性时,需要右击该控件。如果Visual Studio 2008开发平台中已经存在属性窗口,则会将该窗口显示为该控件的属性。如果没有,则会弹出控件的属性窗口。
右击Label控件,在控件的属性窗口中,设定Label控件的Text属性为“请单击OK按钮”。右击Button控件,在控件的属性窗口中,设定Button控件的Text属性为OK。设定完毕的页面如图1.14所示。(4)双击按钮控件,页面切换到后台Default.aspx.cs的代码编辑视图。从中可以看到,开发工具自动在后台文件中添加了一个按钮的单击事件,在该事件中添加如下代码:
protected void Button1_Click(object sender, EventArgs e) { this.Label1.Text = "您已经单击了OK按钮,欢迎进入ASP.NET 3.5开发世界"; }
该段代码的功能是在单击按钮之后,更换Label控件的文字显示内容。
图1.14 添加控件
1.2.3 运行程序:查看在浏览器上显示的源文件
通过前面两节的介绍,已经创建好了网站,并设计好了网站中某个网页的内容。本节学习如何通过VS2008与IIS的结合,浏览设计好的网站和网页。详细步骤如下所示。
(1)单击工具栏中的按钮,运行当前的ASP.NET程序。如果是第一次启用调试,Visual Studio 2008会弹出一个“未启用调试”对话框,如图1.15所示。
(2)单击“确定”按钮,网站进入调试状态。此时会弹出一个新的网页窗口,该窗口即为Default.aspx浏览状态,如图1.16所示。
图1.15 “未启用调试”对话框
图1.16 调试页面
(3)单击OK按钮之后,页面显示出“您已经单击了OK按钮,欢迎进入ASP.NET 3.5开发世界”文字。
1.2.4 退出Visual Studio 2008
创建网站,设计网页,然后运行所设计好的页面,这三个步骤完整地表现了一个ASP.NET程序的开发过程,具体代码该如何写,那些控件该如何引用,后面的章节都会详细介绍,本章就是通过一个简单的小程序,帮助读者先了解一个开发的过程,了解究竟什么是ASP.NET应用程序。
现在关闭正在运行浏览器,注意关闭浏览器只是关闭正在运行的程序,并不是关闭VS2008。关闭浏览器后,界面自动回退到VS2008的设计界面。如果要退出所有的程序,则单击此界面右上角的关闭按钮。如果程序还没有保存,系统会自动提示你是否要保存。如果单击“是”按钮,则VS2008保存后就会正常关闭。
1.3 ASP.NET程序结构的剖析
前面在设计网页时,添加了控件,也为控件添加了代码,这些代码究竟什么意思?为什么要写在这个地方?本节就分析前面使用的代码,并介绍ASP.NET程序的一些代码组成。
1.3.1 前台和后台
在ASP.NET程序中,一般分为前台和后台,进行界面设计的Default.aspx,通常称为前台,表示用户能看到的地方,而真正写代码来处理内容的地方称为后台,用户看不到后台代码,程序员来完成后台代码的设计,就是前面例子中的Default.aspx.cs。
在Default.aspx源代码界面顶部有一句声明,如下所示。其中的CodeFile参数设置的内容就是本界面所关联的后台代码。这个参数的意义就是指定当前页引用的代码隐藏文件的路径。此属性与Inherits属性一起使用,可以将代码隐藏源文件与网页相关联。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
通过上面的设置就可以知道,当前网页的后台代码来自Default.aspx.cs的支持,就是常说的后台文件或者后台代码。
1.3.2 程序集的引用
程序集是一些已经封装好的类库,可以直接拿来使用。打开Default.aspx.cs后台文件,文件的开始就是对.NET框架中已经存在的程序集的引用。参考下面的代码。
using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;
其中using是.NET的关键字,表示引用。在.NET框架中,基本的程序集都封装在System这个空间内。
1.3.3 事件
在前面的案例中,使用了按钮的单击事件。事件就是执行一个事情,如执行单击操作、双击操作等。有些事件是系统自动完成的,如页面的加载、页面的显示和页面对象的销毁等;有些是通过用户操作来完成的,如单击、双击、拖动等。
前面事件的完整代码如下所示。其中事件有两个参数:sender和e。这两个参数的作用就是告诉程序,谁做了什么。
protected void Button1_Click(object sender, EventArgs e) { this.Label1.Text = "您已经单击了OK按钮,欢迎进入ASP.NET 3.5开发世界"; }
sender就是“谁”,而e就是“做了什么”。
当某个事件被执行时,这个动作被Windows捕获,然后Windows把这个动作作为系统消息发送给程序,程序从自己的消息队列中不断地取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e的参数就起到了引导程序,使用正确的处理函数的作用。这段话有些抽象,读者可以在学习控件的时候,得到更深刻的理解。
1.3.4 揭示程序处理过程和本质
本节介绍一个网页的完整处理过程,其实就是一个事件处理的顺序。整个事件的完整处理过程,就是一个页面的生命周期。
网页的生命周期主要分为10步,也就是10个需要处理的事件。从用户打开网页开始,到网页从服务器获取数据,再到网页的完全显示,总共经历10个事件。下面就介绍这10个事件,介绍顺序就是网页的处理顺序。
(1)初始化对象:页面的控件(包括页面本身)的初始状态。在后台文件的构造函数中声明所有对象后,页面就知道要创建多少对象,以及这些对象的类型。页面通过OnInit事件完成此操作。
(2)导入ViewState数据:在页面初始化事件后,所有控件就可以通过其ID被程序访问。在LoadViewState这个事件中,所有控件将获得它们的第一个属性—ViewState属性。这个属性最终将被返回给服务器,以判断这个页面是已经被用户访问完毕,还是仍在被用户访问。其实就是一个缓存控件的功能,在被服务器返回数据的页面中,查看其源代码,可以看到一个名为“__VIEWSTATE”的隐藏控件。
(3)用LoadPostData处理Postback数据:在页面创建的这个阶段,服务器对页面上的控件所提交的数据进行处理。当一个页面被提交时,框架就在每个控件上执行一个IPostBackDataHandler接口操作。然后页面执行LoadPostData事件解析页面,找到每个执行了IPostBackDataHandler接口操作的控件,并用postback数据更新这些控件状态。
(4)导入对象:导入对象是在Load事件中,在这里所有对象都被实例化了。所有的对象第一次被布置在DOM页面里。这样,对象就可以从客户端获得各种属性,如宽度、高度、值、可见性等。
(5)RaisePostBackChanged事件:这个事件发生在所有控件执行了IPostBackDataHandler接口操作,并被正确的postback数据更新后。在这一步中,每个控件都被赋予一个布尔值,来标志该控件有没有被更新。
(6)处理客户端PostBack事件:由postback(回发)数据在服务器端引起的事件处理完后,产生postback数据的对象,就会执行RaisePostBackEvent事件。
(7)预先呈递对象:可以改变对象,并将改变后的对象保存,此时就是这一步—预先呈递对象。可以在这一步对控件的属性、控件树等结构作出最后的修改。在这一步之后,对对象的所有修改将最终被锁定。此步通过OnPreRender事件来完成。
(8)保存ViewState:所有对页面控件的修改完成后Viewstate就被保存了。所有对象的状态数据还是保留在一个隐藏控件里,呈现页面的对象状态数据,也是从这一步中获取。在SaveViewState事件中,其值被保存到Viewstate对象中,然而这时不允许再在页面对控件进行修改。
(9)呈递给页面:给浏览器输出页面的时候触发的是Render事件。在Render事件中,页面调用其中的对象并将它们呈递给浏览器。这一步仍然可以做一些修改动作,不过已经与服务器无关,只是客户端的一些显示上的变化而已。
(10)销毁对象:服务器把页面呈现给浏览器后,所有的对象都应该被销毁,这通过Dispose事件完成。此时应该销毁所有在建立这个页面时创建的对象。此步骤中,所有的处理已经完毕,所以销毁任何对象都不会产生错误,包括销毁页面对象。
1.4 配置文件(web.config)说明
在前面介绍网站时,知道网站默认生成一个web.config文件,这个文件就是配置文件。本节就来了解什么是配置文件,它有什么作用。
1.4.1 什么是配置文件
配置文件就是用来配置网站的文件。网站使用什么验证方式来验证用户,网站的登录超时时间是多长,网站的数据库如何连接,这些都是网站的配置。ASP.NET应用程序通过网站的web.config来配置网站,打开这个文件,其内容如下所示。其中第1行“<?xml version="1.0"?>”表示这是一个标准格式的XML文件。各个配置将在后面的章节学到,本处只给出一个配置文件的结构。
<?xml version="1.0"?> <configuration> <configSections> </configSections> <appSettings/> <connectionStrings/> <system.web> <compilation debug="false"> </compilation> <authentication mode="Windows" /> <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> --> </system.web> ⋯ </configuration>
1.4.2 配置文件的作用
ASP.NET的配置信息包含在一组配置文件中,每个文件都名为web.config。每个配置文件都包含XML标记和子标记的嵌套层次结构,这些标记带有指定配置设置的属性。ASP.NET所有配置信息都驻留在名为<configuration>和</configuration>的根XML标记之间。
注意
一个文件夹下只能有一个web.config文件。一个网站中可以有多个配置文件,它们都在不同的文件夹下。
web.config不仅可以使用与.NET框架一起提供的预定义的配置节处理程序,还可以创建自己的处理程序来处理自己的自定义配置数据。这种灵活性就是配置文件最大的作用,归根结底,web.config文件就是用来配置网站,为网站服务,让开发人员可以通过其灵活的配置,控制好网站的各种突发情况和正常运行情况。
1.5 小结
本章首先介绍了开发ASP.NET程序的结构的搭建,然后在这个搭建好的环境下,开发了自己的第一个ASP.NET应用程序。为了让读者更好地了解ASP.NET,在创建完程序后,本章还介绍了程序的前台和后台的组成,最后还介绍了一个ASP.NET程序的处理过程,包括从加载页面到释放页面对象的整个页面生命周期。
本章最后简要介绍了web.config这个配置文件。这个文件非常关键,虽然VS2008默认的配置都是最常用的,但当一个网站完成后,为了方便管理员操作,还是要进行一些必要的配置的。