1.4 ASP.NET运行环境
学习目标
熟悉使用IIS和Visual Studio管理aspx页面。
在本地调试运行ASP.NET程序,运行环境有多种选择,如IIS组件、Visual Studio环境等。
1.4.1 使用IIS管理aspx页面
IIS是微软公司推出的绑定于Windows操作平台的一套Web程序开发运行组件,以前的ASP开发完全借助于IIS组件。而aspx页面也可以在IIS环境中运行,只不过要做一些环境配置。
在保证Windows平台已经安装了IIS组件(安装方法参见附录1)后,必须安装.NET Framework组件包。目前最新版本为4.5,可以从官方站点直接下载。如果已经安装了Visual Studio集成平台,那么就不需要再安装.NET Framework组件包,因为在Visual Studio集成软件中已经包括了.NET Framework组件包。
在完成了上述准备工作后,就可以使用一个aspx页面来测试IIS环境是否已经支持运行aspx页面了。下面给出一个简单的测试页面Hello.aspx的完整代码(可以使用任何编辑器编写,如记事本、EditPlus等),编辑完成后保存在C:\Inetpub\wwwroot\Hello.aspx,因为IIS安装过程中的默认主目录就是这个目录,当然也可以修改为其他指定目录。
1 <%@ Page Language="C#" %> 2 <html> 3 <head> 4 <title>测试页面:Hello</title> 5 </head> 6 <body> 7 <% 8 for (int i = 1; i <= 7; i++) 9 { 10 Response.Write("<font size=" + i.ToString ()+ ">"); 11 Response.Write("Hello world"); 12 Response.Write ("</font><br />"); 13 } 14 %> 15 </body> 16 </html>
然后在浏览器中输入http://localhost/Hello.aspx,正常运行的输出结果如图1-21所示,这就说明环境已经配制成功了。
代码说明:
(1)第1行代码“<%@ Page Language=“C#”%>”用于指定本页面使用C#语言。
(2)使用C#编写ASP.NET页面,代码区分字母大小写,例如上面的10~12行的“Response.Write”就不能写成“response.write”,否则运行时语法肯定出错。
(3)每个语句的结束符号为英文状态下的分号。
(4)代码第10行的i.ToString()是一个字符串类型转换的方法,目的是把整数类型变量i转换成为字符串类型,以便完成字符串的连接。
1.4.2 使用Visual Studio 2012管理aspx页面
使用Visual Studio环境管理aspx页面非常简单。因为整个运行过程系统自动完成,用户只需要设计页面样式和编写程序代码即可,要运行直接按Ctrl+F5组合键就可以了。
1.4.3 ASP.NET页面代码模型编译机制
ASP.NET网页由两部分组成,分别是可视元素与页的编程逻辑。其中可视元素包括标记、服务器控件和静态文本,页的编程逻辑包括事件处理程序和其他代码。
ASP.NET提供两个用于管理可视元素和代码的模型,即单文件页模型和代码隐藏页模型。这两个模型功能相同,两种模型中可以使用相同的控件和代码。
1.单文件页模型
在单文件页模型中,页的标记及其编程代码位于同一个物理.aspx文件中。编程代码位于script块中,该块包含runat=“server”属性,此属性将其标记为ASP.NET应执行的代码。script块可以包含页所需的任意多的代码。代码可以包含页中控件的事件处理程序(如以下示例所示)、方法、属性及通常在类文件中使用的任何其他代码。在运行时,单文件页被作为从Page类派生的类进行处理,该页不包含显式类声明。下面给出一个简单的单文件页模型的例子代码。
<%@ Page Language="C#" %> <script runat="server"> void Button1_Click(Object sender, EventArgs e) { Label1.Text = "Clicked at " + DateTime.Now.ToString();} </script> <html> <head> <title>Single-File Page Model</title> </head> <body> <form runat="server"> <div> <asp:Label id="Label1" runat="server" Text="Label"> </asp:Label> <br /> <asp:Button id="Button1" runat="server" onclick="Button1_Click" Text="Button"> </asp:Button> </div> </form> </body> </html>
2.代码隐藏页模型
通过代码隐藏页模型,可以在一个文件(.aspx文件)中保留标记,并在另一个文件中(.aspx.cs文件)保留编程代码。代码文件的名称会根据所使用的编程语言而有所变化。并非所有的.NET编程语言都可用于为ASP.NET网页创建代码隐藏文件。必须使用支持分部类的语言。例如,J#不支持分部类,因此也不支持为ASP.NET页创建代码隐藏文件。一般开发ASP.NET程序都选择C#语言,本书全部都选择C#语言。
在代码隐藏模型中,前面部分中使用的单文件页示例分成两个部分。标记位于一个文件中(在本示例中为SamplePage.aspx),并且与单文件页类似,如下面的代码示例所示。
<%@ Page Language="C#" CodeFile="SamplePage.aspx.cs" Inherits="SamplePage" AutoEventWireup="true" %> <html> <head runat="server"> <title>Code-Behind Page Model</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label id="Label1" runat="server" Text="Label"> </asp:Label> <br /> <asp:Button id="Button1" runat="server" onclick="Button1_Click" Text="Button" > </asp:Button> </div> </form> </body> </html>
在单文件模型和代码隐藏模型之间,.aspx页有两处差别。在代码隐藏模型中,不存在具有runat=“server”属性的script块(如果要在页中编写客户端脚本,则该页可以包含不具有runat=“server”属性的script块);第二个差别是,代码隐藏模型中的@ Page指令包含引用外部文件(SamplePage.aspx.cs)和类的属性。这些属性将.aspx页链接至其代码。
代码位于单独的文件中。下面的代码示例演示一个与单文件页的示例包含相同Click事件处理程序的代码隐藏文件。
using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class SamplePage : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { Label1.Text = "Clicked at " + DateTime.Now.ToString(); } }
代码隐藏文件包含默认命名空间中的完整类声明。但是,类是使用partial关键字进行声明的,这表明类并不整个包含于一个文件中。而在页运行时,编译器将读取.aspx页和它在@ Page指令中引用的文件,将它们汇编成单个类,然后将它们作为一个单元编译为单个类。分部类文件从Page类页继承。
3.单文件页的优点
通常,单文件模型适用于特定的页,在这些页中,代码主要由页中控件的事件处理程序组成。单文件页模型的优点包括以下几点。
(1)在没有太多代码的页中,可以方便地将代码和标记保留在同一个文件中。
(2)因为只有一个文件,所以单文件模型编写的页更容易部署或发送给其他程序员。
(3)由于文件之间没有相关性,因此更容易对单文件页进行重命名。
(4)因为页自包含于单个文件中,所以在源代码管理系统中管理文件稍微简单一些。
4.代码隐藏页的优点
代码隐藏页的优点使它们适用于包含大量代码或多个开发人员共同创建网站的Web应用程序。通常使用ASP.NET开发Web程序都会选择代码隐藏页管理方式。代码隐藏模型的优点包括以下几点。
(1)代码隐藏页可以清楚地分隔标记(用户界面)和代码。这一点很实用,可以在程序员编写代码的同时让设计人员处理美工标记。
(2)代码并不会向仅使用页标记的页设计人员或其他人员公开。
(3)代码可在多个页中重用。
(4)使用代码隐藏页方式方便程序管理、调试和升级。
1.4.4 ASP.NET开发要求
若要开发ASP.NET应用程序,必须具有以下工具。
(1).NET Framework最新版本。
ASP.NET是.NET Framework的一部分(作为System.Web命名空间)。若要使用ASP.NET,在承载ASP.NET网站的计算机上必须安装.NET Framework。可以从.NET Framework Developer Center(.NET Framework开发人员中心)网站下载.NET Framework的最新版本。
(2)代码创作环境。
可以使用任何文本编辑器(如随Microsoft Windows一起安装的Microsoft记事本)创建ASP.NET页和类。不过,Microsoft Visual Studio集成开发环境(IDE)提供了页模板、代码自动完成和控件拖拽等许多方便的编程功能。这些功能可以加速开发过程并提供项目组织功能。
(3)一个Web服务器(如Internet信息服务(IIS))。
若要使用ASP.NET Web应用程序,必须使用浏览器向承载应用程序的Web服务器发出请求。通常,使用IIS作为Web服务器来承载ASP.NET Web应用程序。可以通过在计算机上本地运行IIS或将页和组件部署到共享服务器来测试应用程序,也可以使用Microsoft Visual Studio集成开发环境(IDE)提供虚拟环境来运行ASP.NET Web应用程序。
(4)一个数据库产品(如Microsoft SQL Server),用于提供应用程序数据存储。
如果开发的应用程序涉及数据存储,则需要访问数据库应用程序(如Microsoft SQL Server)的权限并且必须具有向数据库读写数据的适当权限。在典型情况中,在设计时使用一个账户访问数据库,而在运行时使用另一个账户访问数据库。
(5)一个SMTP服务器,用于从ASP.NET Web应用程序发送电子邮件。
要从ASP.NET Web应用程序发送电子邮件,应用程序必须能够将邮件转发到
SMTP服务器。某些ASP.NET控件需要发送电子邮件的能力。可以使用IIS SMTP虚拟服务器来转发电子邮件。