一 ASP.NET产生背景
虽然可以使用JavaScript、Dom在浏览器端完成很多工作,但是功能还是有限,所以基于.NET的ASP.NET产生了,是一种动态网页技术,在服务器端运行.NET代码,动态生成HTML,然后响应给浏览器。
二 ASP.NET工作逻辑
从使用的角度看,ASP.NET的运行过程包含页面请求、分析、编译、组装、页面缓冲五大环节。当客户端通过浏览器请求(Request)页面时,服务器端首先由页面分析器(Parser)对被请求的页面进行分析;再将通过分析的页面内容传递给编译器(Compiler);经过编译器编译的页面内容被传输给组装缓存(Assembly Cache),同时,一些需要较高资源代价的元素可以创建一次后存人内存(Memory);将组装缓存和内存中的内容有机结合后形成一个完整页面(包括数据、编译代码、HTML代码等),完整页面最后被送往输出缓存(Output Cache)。输出缓存中的内容将作为客户端的页面请求结果被送回浏览器。当同一页面被第二次请求时,服务器端将跳过所有中间环节,直接从输出缓存中送出页面请求结果。
三 ASP.NET文件解析
3.1 概况
- ASP.NET的页面文件是
*.aspx,每个页面对应一个*.resx资源文件和一个*.aspx.cs的代码文件。 *.resx是资源文件。每个页面都有一个资源文件相对应。global.asax是global.asa的.net版global.asax.cs是global.asax的后台文件。*.ascx是一个用户自定义控件。*.ascx.cs是自定义控件的代码文件,C#的是*.ascx.cs*.ascx.resx是自定义控件的资源文件。*.aspx.cs是*.aspx页面的后台代码。web.config是整个Web Application的配置文件。*.csproj是CS.NET的工程文件。*.vsdisco是Web Service的文件。*.csproj.webinfo是CS.NET工程文件的Web Application文件。*.sln是VS.NET的解决方案文件。
其中global.asax,global.asax.cs,web.config,*.csproj,*.vsdisco,*.csproj.webinfo,*.sln都是在建立一个Web Application工程的时候自动产生的。
3.2 详细介绍
其中被加粗显示的文件类型,是我现在有所了解的,捂脸羞愧.jpg。
| 文件类型 | 位置 | 说明 |
|---|---|---|
| .asax | 应用程序根目录。 | 通常是 Global.asax 文件,该文件包含从 HttpApplication 类派生并表示该应用程序的代码。 有关更多信息,请参见 Global.asax 语法。 |
| .ascx | 应用程序根目录或子目录。 | Web 用户控件文件,该文件定义自定义、可重复使用的用户控件。 有关更多信息,请参见 ASP.NET 用户控件。 |
.ashx |
应用程序根目录或子目录。 | 一般处理程序文件,该文件包含实现 IHttpHandler 接口以处理所有传入请求的代码。 有关更多信息,请参见 HTTP 处理程序介绍。 |
| .asmx | 应用程序根目录或子目录。 | XML Web services 文件,该文件包含通过 SOAP 方式可用于其他 Web 应用程序的类和方法。 有关更多信息,请参见 XML Web 服务的发布和部署。 |
.aspx |
应用程序根目录或子目录。 | ASP.NET Web 窗体文件,该文件可包含 Web 控件和其他业务逻辑。 有关更多信息,请参见 ASP.NET 网页和 ASP.NET Web 服务器控件。 |
| .axd | 应用程序根目录。 | 跟踪查看器文件,通常是 Trace.axd。 有关更多信息,请参见 ASP.NET 跟踪。 |
| .browser | App_Browsers 子目录。 | 浏览器定义文件,用于标识客户端浏览器的启用功能。 有关更多信息,请参见 ASP.NET Web 服务器控件和浏览器功能。 |
.cd |
应用程序根目录或子目录。 | 类关系图文件。 有关更多信息,请参见使用类关系图,对于每个.cs后台脚本,都可以通过右键查看类图,显示脚本的相关内容,比如继承的类型、字段、嵌套类型和方法等 |
| .compile | Bin 子目录。 | 预编译的 stub(存根)文件,该文件指向相应的程序集。可执行文件类型(.aspx、ascx、.master、主题文件)已经过预编译并放在 Bin 子目录下。 有关更多信息,请参见 ASP.NET 网站预编译概述。 |
.config |
应用程序根目录或子目录。 | 通常是 Web.config 配置文件,该文件包含其设置配置各种 ASP.NET 功能的 XML 元素。 有关更多信息,请参见 ASP.NET 配置文件。 |
.cs、.jsl、.vb |
App_Code 子目录;但如果是 ASP.NET 页的代码隐藏文件,则与网页位于同一目录。 |
运行时要编译的类源代码文件。类可以是 HTTP 模块、HTTP 处理程序,或者是 ASP.NET 页 HTTP 处理程序介绍的代码隐藏文件。 |
| .csproj、.vbproj、vjsproj | Visual Studio 项目目录。 | Visual Studio 客户端应用程序项目的项目文件。 有关更多信息,请参见项目和解决方案。 |
| .disco、.vsdisco | App_WebReferences 子目录。 | XML Web services 发现文件,用于帮助定位可用的 Web services。 有关更多信息,请参见 XML Web 服务的发布和部署。 |
| .dsdgm、.dsprototype | 应用程序根目录或子目录。 | 分布式服务关系图 (DSD) 文件,该文件可以添加到任何提供或使用 Web services的Visual Studio解决方案,以便对Web service交互的结构视图进行反向工程处理。 有关更多信息,请参见 XML Web 服务的发布和部署。 |
.dll |
Bin 子目录。 | 已编译的类库文件。或者,可以将类的源代码放在 App_Code 子目录下。 有关更多信息,请参见 ASP.NET 网站中的共享代码文件夹。 |
| .licx、.webinfo | 应用程序根目录或子目录。 | 许可证文件。控件创作者可以通过授权方法来检查用户是否得到使用控件的授权,从而帮助保护自己的知识产权。 有关更多信息,请参见如何:License 组件和控件。 |
.master |
应用程序根目录或子目录。 | 母版页,它定义应用程序中引用母版页的其他网页的布局。 有关更多信息,请参见 ASP.NET 母版页。 |
.mdb、.ldb |
App_Data 子目录。 | Access 数据库文件。 有关更多信息,请参见通过 ASP.NET 访问数据。 |
| .mdf | App_Data 子目录。 | SQL 数据库文件。 有关更多信息,请参见通过 ASP.NET 访问数据。 |
| .msgx、.svc | 应用程序根目录或子目录。 | Indigo Messaging Framework (MFx) service 文件。 |
| .rem | 应用程序根目录或子目录。 | 远程处理程序文件。 有关更多信息,请参见使用 SOAP 扩展修改 SOAP 消息。 |
| .resources | App_GlobalResources 或 App_LocalResources 子目录。 |
资源文件,该文件包含指向图像、可本地化文本或其他数据的资源字符串。有关更多信息,请参见应用程序中的资源或如何:为 ASP.NET 网站创建资源文件。 |
| .resx | App_GlobalResources 或 App_LocalResources 子目录。 |
资源文件,该文件包含指向图像、可本地化文本或其他数据的资源字符串。有关更多信息,请参见应用程序中的资源或如何:为 ASP.NET 网站创建资源文件。 |
| .sdm、.sdmDocument | 应用程序根目录或子目录。 | 系统定义模型 (SDM) 文件。 有关更多信息,请参见系统定义模型 (SDM) 概述。 |
| .sitemap | 应用程序根目录。 | 站点地图文件,该文件包含网站的结构。ASP.NET 中附带了一个默认的站点地图提供程序,它使用站点地图文件可以很方便地在网页上显示导航控件。 有关更多信息,请参见 ASP.NET 站点导航。 |
| .skin | App_Themes 子目录。 | 用于确定显示格式的外观文件。 有关更多信息,请参见 ASP.NET 主题和外观。 |
.sln |
Visual Web Developer 项目目录。 | Visual Web Developer 项目的解决方案文件。 有关更多信息,请参见项目和解决方案。 |
| .soap | 应用程序根目录或子目录。 | SOAP 扩展文件。有关更多信息,请参见使用 SOAP 扩展修改 SOAP 消息。 |
3.3 SOAP小课堂
3.3.1 WHAT
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
- 基于类对象的传输协议。
- SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
- SOAP编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
- SOAP RPC表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
- SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。
把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。在使用HTTP作为协议绑定的场合中,RPC请求映射到HTTP请求上,而RPC应答映射到HTTP应答。然而,在RPC上使用SOAP并不仅限于HTTP协议绑定。
SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, SOAP用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。
SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
3.3.2 HOW
1 |
|