1.5 第一个Web应用程序
Web应用程序的开发越来越流行,很多应用软件都已经Web化。C#提供了强大的Web开发支持,能开发出企业级的大型Web应用程序。一些常见的Web应用程序开发,例如在线OA系统、电子商务等都是Web应用程序。在本节将初步介绍如何应用C#开发Web应用程序。在本书的第11章会对其有更详细的介绍。
1.5.1 什么是Web应用程序
Web应用程序是基于浏览器和服务器模式的应用程序,它通过浏览器呈现给使用者,通过服务器提供远程服务。Web应用程对网络的依赖性很大,同时对于计算机网络的贡献也很大。目前,一些办公软件和应用软件都已经有了Web版本。例如Office就有Web版本,如图1.18就是一个Web版的电子表格软件。
图1.18 Google公司的Web电子表格软件
例如,在一个卖鲜花的网站中,客户进行反复的挑选,浏览一系列的鲜花和网页后,下了一些鲜花的订单。然后支付相应的费用,最后发出订单,确认购买。这样一个流程就是Web应用程序在服务着,如图1.19所示。
图1.19 网上花店
Web应用程序不同于传统的网站,一般的Web站点使用一系列菜单或导航栏来导航该站点。自由地浏览一个Web网站时,可以进行无状态和匿名的访问。但是Web应用程序是不可能接受无状态和匿名的访问的。它有以下三个优点:
· Web应用程序采用(B/S)架构,这种架构采用Internet上标准的通信协议。这样可以使位于Internet网络上任意位置的人都能够正常访问Web程序。对于服务器来说,通过相应的Web程序和数据库服务可以对数据进行处理。
· 在服务器上对数据进行处理,并将处理的结果生成网页,返回给用户的浏览器,用户可以直接查看。
· 在客户端只需要安装一套内置浏览器的操作系统,例如Windows XP、Windows Vista。或安装一个浏览器软件,就可以实现服务器上数据的访问。
1.5.2 开发Hello World Web应用程序
要建立Web应用程序,就必须用到Internet信息服务(IIS)或者其他的Web服务器,例如Apache。它能够响应用户的请求,把网页内容传输给用户。同时还能管理和维护Web站点等。下面以Windows XP中的IIS安装为例来介绍一下它的安装,其操作步骤如下所示。
注意:Visual Studio 2010集成开发环境中也提供了调试ASP.NET程序的功能,只不过它只支持纯ASP.NET程序,如果程序中含有ASP代码,则将会出错。如果使用IIS调试程序,笔者推荐在Web应用程序的web.config文件中开启调试,待开发完成后再关闭。
① 将Windows XP系统光盘放入光驱中。选择“开始”|“控制面板”|“添加/删除程序”|“添加/删除Windows组件”命令,弹出“Windows组件向导”对话框,如图1.20所示。
图1.20 Windows组件向导
② 选择“Internet信息服务(IIS)”复选框,单击“下一步”按钮,开始安装IIS,如图1.21所示。
图1.21 安装IIS
③ 单击“完成”按钮,完成IIS的安装。
④ 启动Visual Studio 2010,选择菜单栏“文件”|“新建”|“网站”命令,弹出如图1.22所示的对话框。在“Visual Studio已安装的模板”选项区域中选择“ASP.NET网站”选项,选择保存路径即可。
图1.22 创建Web应用程序Hello Word
【范例1-2】创建一个Web应用程序,在页面中输出“Hello Word”字符串,如示例代码1-2所示。
示例代码1-2
01 using System; //包含基本类和基类 02 using System.Linq; //支持语言集成查询 03 using System.Web; //提供浏览器与服务器通信的类和接口 04 using System.Xml.Linq; 05 …… //此处还有其他命名空间,此处省略 06 public partial class _Default : System.Web.UI.Page 07 { 08 protected void Page_Load(object sender, EventArgs e) //页面加载时的事件 09 { 10 Label1.Text = ""; //为Label控件的text赋一个空值 11 } 12 protected void Button1_Click(object sender, EventArgs e) //按钮的单击事件 13 { 14 Label1.Text = "Hello Word"; //为Label控件的text属性赋值 15 } 16 }
【运行结果】选择“调试”|“启动调试”选项,运行程序,然后单击页面上的“Button1”按钮。结果如图1.23所示。
图1.23 Web应用程Hello Word运行结果
【代码解析】该程序使用了按钮控件和标签控件,第08 行代码是在页面加载时要触发的事件,这在Web项目中,是默认生成的。第12 行代码是按钮的响应事件。从代码中可以看出,ASP.NET程序和一般的Windows应用程序是很相像的,只是两者在运行机制上有所不同。ASP.NET程序是通过远程计算机响应后返回客户端,通过HTML和其他元素呈现出来。
注意:在范例1-2中,也可以将输出信息的代码直接写在页面加载事件中,那样的话就不必单击按钮再实现输出了。