ASP.NET应用程序的标准定义是:文件、页面、处理器、模块和可执行代码的组合,并且它们能够从服务器上被应用。ASP.NET应用程序是一系列资源和配置的组合,这些资源和配置只在同一个应用程序内共享,而其他应用程序则不能享用这些资源和配置,尽管它们发布在同一台服务器上。就技术而言,每个ASP.NET应用程序都运行在一个单独的应用程序域,应用程序域是内存中的独立区域,这样可以确保在同一台服务器上的应用程序不会相互干扰,不至于因为其中一个应用程序发生错误就影响到其他应用程序的正常进行。同样,应用程序域限制一个应用程序中的Web页面访问其他应用程序的存储信息。每个应用程序单独地运行,具有自己的存储、应用和会话数据。
ASP.NET页面作为代码在服务器上运行。在用户单击按钮(或者当用户选中复选框或与页面中的其他控件交互)时提交页面到服务器。每次页面都会回发,以便它可以再次运行其服务器代码,然后向用户呈现其自身的新版本。传递Web页面的具体过程如下:
● 用户请求页面。使用HTTP GET方法请求页面,页面第一次运行,执行初步处理(如果已通过编程让它执行初步处理)。
● 页面将标记动态呈现到浏览器。
● 用户键入信息或从可用选项中进行选择,然后单击按钮。如果用户单击链接而不是按钮,页面可能仅仅定位到另一页,而第一页不会被进一步处理。
● 页面发送到Web服务器。浏览器执行HTTP POST方法,该方法在ASP.NET中称为“回发”。更明确地说,页面发送回其自身。例如,如果用户正在使用Default.aspx页面,则单击该页上的某个按钮可以将该页发送回服务器,发送的目标则是Default.aspx。
● 在Web服务器上,该页再次运行。并且可在页面上使用用户键入或选择的信息。
● 页面执行通过编程所要实行的操作。
● 页面将其自身呈现回浏览器。
只要用户在该页面中工作,此循环就会继续。用户每次单击按钮时,页面中的信息都会发送到Web服务器,然后该页面再次运行。每个循环称为一次“往返行程”。由于页面处理发生在Web服务器上,因此页面可以执行的每个操作都需要一次到服务器的往返行程。
在ASP.NET中,发送到客户端浏览器中的网页是经过.NET框架中的基类动态生成的。这个基类就是Web页面框架中的Page类,而实例化的Page类就是一个Web窗体,也就是Web Forms。因此,一个ASP.NET页面就是一个Web窗体。而作为窗体对象,就具有属性、方法和事件,可以作为容器容纳其他控件。
Web窗体是保存为后缀名为.aspx的文本文件,可以使用任何文本编辑器打开和编写,ASP.NET是编译的运行机制,为了简化开发人员的工作,一个.aspx页面不需要手工编译,而是在页面被调用时,有公共语言运行时自行决定是否要被编译。
在Web窗体可以使用一般的HTML窗体控件,但ASP.NET也提供了自己的可以在服务器上运行的Web窗体控件。
后台隐藏代码与早期脚本语言的将代码和HTML标记混合在一起编写不同。它是将业务逻辑的处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码,这种过程被称为代码分离。
代码分离的优点就是在.aspx页面中,开发人员可以将页面直接作为样式来设计,即美工人员可以设计.aspx页面,而.cs文件由编程人员来完成业务逻辑的处理。同时,将ASP.NET中的页面样式代码和逻辑处理代码分离能够让维护变得简单并且代码看上去也非常的整洁明了。
ASP.NET Web窗体至少由一个Web窗体(扩展名为.aspx的文件)组成,但是它常常是由更多文件组成的,各个类型提供了不同的功能。
1.Web文件
Web文件是Web应用程序中特有的文件,可以由浏览器直接请求,也可以用来构建在浏览器中请求的Web页面的一部分。表1-2中列出了在ASP.NET Web应用程序中常用的各种Web文件和它们的扩展名,并说明了各种文件的用法。
表1-2 ASP.NET Web应用程序的文件类型列表
(续表)
2.代码文件
代码文件用来实现Web页面的逻辑。表1-3描述了ASP.NET Web应用程序的各种类型的代码文件。
表1-3 ASP.NET Web应用程序的代码文件列表
3.数据文件
数据文件用来存储可以用在站点和其他应用程序中的数据。这组文件由XML文件、数据库文件以及与使用数据相关的文件组成,如表1-4所示。
表1-4 ASP.NET Web应用程序的数据文件列表
相对于以前的版本,ASP.NET 4.5增加了许多的新特性,下面对其中比较重要的核心功能做一个简要的介绍。
1.ASP.NET MVC 4.0
ASP.NET MVC可以说是除了WebForm以外,开发Web应用程序最好的选择,它拥有Model-View-Controller分离的设计架构,开发人员能在不同的模型内开发自己的功能,不需要担心耦合度的问题,MVC在架构上也非常适合大型Web应用程序的发展。MVC经过了三个版本的升级,架构上已十分成熟,最新的ASP.NET MVC 4.0包含了如下一些主要新特性:
(1)ASP.NET Web应用程序接口(Web API)
ASP.NET Web API是用于在.NET上生成Web API的框架,它是一个适合范围广泛的客户端包括浏览器和移动设备的新框架。ASP.NET Web API也是一个理想的平台,用于通过Web API可以很容易地建立HTTP服务。
(2)移动项目模板
ASP.NET MVC4.0中增加了许多支持移动应用的新功能。例如,使用新的移动应用程序项目模板可用于构建触摸优化的用户界面,此模板包含的互联网应用程序模板相同的应用程序结构。
(3)增强的对异步编程的支持
使用了async和await两个关键字,简化了异步编程,使工作与任务对象比以前的异步方法简化了许多。等待、异步和任务对象的组合,使你在MVC中编写异步代码容易得多。
2.ASP.NET Web Forms 4.5
ASP.NET Web Forms 4.5比之前的版本,主要增加了以下关键的新功能。
(1)新增强类型数据绑定
在ASP.NET Web Forms 4.5中出现了强类型数据控件,可以在后台绑定数据的控件多了个属性ItemType。当指定了控件的ItemType后就可以在前台使用强类型绑定数据了。
(2)针对HTML 5的更新
在ASP.NET Web Forms 4.5中,控件TextBox的TextBoxMode属性值从之前的三个(SingleLine/MultiLine/Password)增加到了16个;FileUpload控件终于开始支持多文件上传,可以通过AllowMultiple属性打开;包含了如对HTML5表单的验证、用HTML5的标记也可以使用“~”去根目录等;增加UpdatePanel对HTML5表单的支持等。这样使得做表单类页面时,将会大大地降低验证的代码量,提高开发效率,将更多的人力资源放在业务逻辑上。
3.新的模型绑定方式
如果用过ObjectDataSource控件,肯定对其SelectMethod有印象,在ASP.NET Web Forms 4.5中,微软直接将此方法移到强类型控件上。将之前DataBind方法直接替换成更方便的SelectMethod方法。
4.ASP.NET Web Deployment 4.5
Visual Studio 2012开发环境中的网页设计器已经过了以下的改进:
● MutliBrown支持,安装的浏览器显示在启动调试旁边的下拉列表中,可测试同一网页、应用程序或站点不同的浏览器。
● 页检查器页,对于ASP.NET页面,可以使用页检查器确定服务器端代码是否产生了呈现到浏览器的HTML标记。
● 在JavaScript编辑器中,改进了对ECMAScript 5和IntelliSense(智能感知)的支持;增加了括号自动匹配和从变量或函数名跳转到其定义的“转到定义”功能。
● 在CSS编辑器中,最重大的更新是提供了对CSS 3的支持。
● 在HTML编辑中,最重大的更新是提供了对HTML 5的支持。