一 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 |
|