ASP.NET 4.0编程技术大全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 认识ASP.NET 4.0

上一节简要地介绍了.NET Framework和几个新的功能,这些功能其实都可以与ASP.NET进行整合以开发出功能强大的Web产品。这一节将讨论ASP.NET 4.0的基础、功能及特色。

1.2.1 ASP.NET 4.0的新增功能

从ASP.NET的第一个版本发布至今,已经经历了5次较大的升级。

ASP.NET 1.0:微软的首个.NET Framework平台下的Web开发产品。

ASP.NET 1.1:在前一版本的基础上,微软修正了一些Bug,但是该版本并没有提供新的功能特色。

ASP.NET 2.0:ASP.NET迈向成熟非常重要的一个版本。相对于以前版本,它提供了大量的新功能,其新功能可以让开发人员节省编写大量代码的时间,比如内置的数据绑定控件、Web站点导航机制、主题、支持母版页等。

ASP.NET 3.5:在ASP.NET 2.0基础之上的一次升级,但是添加了一些新的特色和两个重大的改变,最重要的改变是添加了对于ASP.NET Ajax的支持,这在ASP.NET 2.0中需要安装扩展才能实现,另外一个改变是对于LINQ的支持,使开发人员能用一种统一的风格进行异构数据源的访问。此外还可以整合WCF、Silverlight及WF到Web应用程序中。

ASP.NET 4.0:与ASP.NET 3.5比较变化不是特别大,着重于细节和框架的应用,以及简单方向进行的改进。

如果程序员是从ASP时代一路走来,那么ASP.NET带给程序员的绝对是一次全新的开发体验。ASP.NET具有如下几点重大的特色:

ASP.NET是完全面向对象的编程模型,包含一个事件驱动和基于控件的架构。

开发人员可以使用任何支持.NET的语言来开发ASP.NET应用程序。ASP.NET实际上只是一套开发框架,开发人员可以使用所喜爱的任何.NET语言比如C#、VB.NET、J#及一些第三方语言。

它由一些ASP.NET页面组成,但是是经过编译的而非解释型的,拥有较高的性能,而且其自身具有一套优良的数据访问模型和灵活的数据缓存架构,用来推动性能的提升。

ASP.NET 4.0版本在ASP.NET 3.5版本的基础上修正了一些不足,也同样包含了两个重大功能:LINQ和Ajax。LINQ是一项足够吸引人使用的技术,它将数据访问带入了一个整合的时代。

Ajax的全称是Asynchronous JavaScript And XML,异步JavaScript和XML,其本身并不是一门新技术,而是多种技术的组合。Ajax增强了用户交互体验的功能,简而言之,使用Ajax可以异步地进行数据的提取和更新,无须多次重新加载页面。有了这个特性,ASP.NET可以说不再是一个单纯的网站开发框架,而是一个Web Base的应用程序开发框架。

1.2.2 准备ASP.NET的开发环境

尽管程序员可以使用像记事本或者是EditPlus之类的文本编辑工具开发ASP.NET应用程序,除非有特别的喜好,否则没有理由不使用VS。它提供了所见即所得的设计界面,并提供了控件工具箱使程序员能以拖动的方式产生用户界面,还可以利用多种Web开发模板来加快ASP.NET应用程序的开发。

微软在.NET Framework 4.0发布之后,同时也发布了Visual Studio 2010正式版,Visual Studio 2010(以下简称VS 2010)提供了一套用于开发.NET应用程序的开发工具,可以生成Web应用程序、Web Service、Windows Forms、WPF、WCF、WF和移动应用程序。在VS 2010中,根据程序员的选择,可以使用Visual Basic.NET、C#或C++进行.NET应用程序的开发,并且可以轻松地创建混合语言解决方案。

开发人员可以使用VS 2010旗舰版,也可以使用免费的Visual Studio Express Edition开发Web应用程序。在开始安装之前,操作系统需要确定具有如下硬件配置。

最低要求:1.6GHz CPU、384MB RAM、1024×768显示器、5400 RPM硬盘。

推荐:2.2 GHz或以上的CPU、1024 MB或以上的RAM、1280×1024显示器、7200 rpm或更高转速的硬盘。

在Windows 7上的运行要求:2.4 GHz CPU、768 MB RAM,也可以在其他Windows平台上比如Windows XP、Windows 2003上进行安装。

最小安装需要1.22 GB可用磁盘空间。

完全安装需要2 GB可用磁盘空间。

使用VS 2010开发ASP.NET应用程序时,可以利用其提供的如下几个好处。

整合错误检查:能够检查相当多的错误,比如数据类型转换错误、错误的命名空间和类、未定义的变量。

Web表单设计器:使开发人员可以拖动ASP.NET控件到合适的位置,然后在属性窗口中配置其属性,VS 2010将自动生成Web页面标记。

整合的Web服务器:为了宿主ASP.NET应用程序,需要一个Web服务器软件,比如IIS,它将等待浏览器的请求并提供相应的页面。尽管设置像IIS之类的Web服务器非常简单,但有时是不必要的。VS 2010中内置了一个开发用的Web服务器,使开发人员可以直接调试运行应用程序,而不用步署到一个真实的Web服务器中。

提高了开发人员的生产效率:使编码工作更快且更有效,其代码提醒、自动代码完成和具有颜色表示的语法,大大提高了开发人员的工作效率。

增强的调试功能:VS整合的调试器允许开发人员监视代码执行,在任意位置暂停程序的执行,并且可以查看任何变量的内容。在编写复杂的代码时,调试工具可以大大节省排错的时间。

复杂的扩展性:开发人员可以使用宏、更改项目模板,甚至为VS编写自定义的插件来扩展VS 2010的功能。

注意:由于VS 2010内置了一个调试用的Web服务器,因此在开发时甚至可以不用安装IIS就可以运行Web应用程序,不过如果是大中型的Web项目,应该考虑使用专门的Web服务器软件来进行测试。

1.2.3 开发第一个ASP.NET应用程序

本节将开发一个简单的显示当前服务器时间的ASP.NET Web应用程序,在介绍完第一个ASP.NET开发的过程后,将简要地讨论它的执行模式。如果读者的机器上已经安装了VS 2010,则选择“开始→程序→Microsoft Visual Studio 2010”命令打开它。第一个示例的步骤如下:

(1)在其主窗口中选择“文件→新建→网站”命令,打开图1.2所示的“新建网站”对话框,其中列出了可供使用的VS 2010网站模板,本示例选择“ASP.NET空网站”。VS 2010支持多种.NET Framework版本的应用程序的开发,因此可以在窗体上侧选择所需要开发的版本,本书中所有的示例将以“.NET Framework 4.0”进行开发。

图1.2 “新建网站”对话框

在“Web位置”下拉列表框中列出了开发可用的3个位置:

文件系统。该选项会使用VS 2010内置的Web服务器调试程序,不用安装IIS就可以编译、调试程序。这个内置的Web服务器提供了开发程序的大多数特性,但如果要创建一个大型的Web应用程序,应该选择IIS作为开发服务器。

HTTP位置表示使用IIS处理Web页面。当选择这个选项后,在右边的文本框中为IIS指定一个虚拟目录。

FTP则表示可以通过FTP在远程位置进行网站开发。

(2)指定了一个网站所要存放的位置后,单击“确定”按钮,VS 2010会自动创建一个空网站,此时网站内没有任何页面,只有一个web.config配置文件。我们需要新建一个页面,以方便了解VS的开发工具。用鼠标右键单击项目名称,在弹出的快捷菜单中选择“添加新项”命令,打开“添加新项”对话框,如图1.3所示。选中“Web窗体”选项,单击“添加”按钮返回到VS开发界面,如图1.4所示。

图1.4 VS 2010开发界面

图1.3 “添加新项”对话框

(3)现在单击主窗口下方的“设计”按钮将主窗口切换到设计视图,从工具箱中拖1个Label控件和1个Button控件到设计窗口中。在属性窗格中,为Button的Text属性设置值为“刷新时间”,用户在单击该按钮时,将会改变在Label控件中显示的时间信息。

(4)接下来需要将界面切换到后置代码视图,可以在主菜单中选择“视图→代码”命令切换到C#源代码视图,也可以按【F7】键进行切换,该程序需要在每次页面加载时显示当前的时间信息,因此在自动生成的Page_Load事件中添加如下代码:

            protected void Page_Load(object sender, EventArgs e)
            {
                //为Label1的Text属性赋予当前的时间字符串
                Label1.Text = DateTime.Now.ToString();
            }

(5)下面准备调试该Web站点。可以单击工具栏中的“调试”按钮,或直接按【F5】键,也可以选择主菜单中的“调试→启动调试”命令打开调试功能,此时系统会自动弹出图1.5所示的提示对话框。

图1.5 提示对话框

该对话框告诉开发人员,将会修改Web.config文件中的配置项来启用调试功能,并提示开发人员在正式部署Web站点的时候,应该在Web.config文件中禁用调试,这个提示框实际上是告诉程序员会将配置文件中的<compilation>配置节的debug属性设置为true,代码如下:

                  <!--
                    设置 compilation debug="true" 可将调试符号插入
                    已编译的页面中。但由于这会影响性能,因此只在开发过程中将此值
                    设置为 true。
                -->
                  <compilation debug="true">

在实际的部署该站点时,应该将debug属性设置为false。

(6)单击“确定”按钮后,在系统拖盘中会多出一个内置服务器运行时的图标,用鼠标右键单击该图标,在弹出的快捷菜单中选择“显示详细信息”命令,将会看到图1.6所示的内置Web服务器的信息。

图1.6 内置Web服务器信息

(7)之后VS 2010会打开一个IE浏览器窗口,显示出在前面几步所设置的内容。本示例中是1个Label控件和1个Button控件,并且加载时会显示出当前服务器端的时间,如果单击“刷新时间”按钮,将看到Label中显示的时间被更新了,如图1.7所示。

图1.7 示例运行效果

说明:在示例中并没有为Button控件添加任何代码,但是当单击Button后,Label控件的时间也会进行更新。因为ASP.NET技术是一门服务器端技术,当单击Button时,浏览器将会向服务器端产生一个请求,服务器端会重新向客户端发送一次页面内容,并引发服务器端的Page_Load事件,此时Label控件会重新刷新一次时间,在本书后续的章节中会详细介绍ASP.NET的这种执行模式。

(8)步骤(1)中生成了指定本项目所有文件生成的位置,该项目下默认有3个文件:.aspx文件用来展示页面设计;.aspx.cs文件用来书写后台代码;web.config文件是项目的配置文件。读者可以在创建完实例后,从资源管理器中查看这个项目的源代码。