引言
在完成牛腩新闻发布系统之后,我发现自己只是按着葫芦画瓢,对这个小系统一无所知。看着敲完的牛腩, 一堆不同扩展名的文件,它们到底是做什么的呢?于是怀着好奇的心情了解了一下,其中有些知识我还是只看到冰山一角,相信在以后的学习中会对它们越来越熟悉。
Asp.Net常用文件
在牛腩新闻发布系统中,有很多.net常用文件,如下(其中.asax文件和.asmx文件我没有看到,在此作为了解)。
文件扩展名 | 说明 |
---|---|
.ashx | 一般处理程序,Asp.Net核心程序,不需要返回大量html代码时使用 |
.aspx | 常用程序WebForm,用于创建网页和对网页进行编程的核心文件类型(前台文件),和aspx.cs文件配套使用(档需要返回大量html代码时使用它) |
aspx.cs | 常用程序,用于编写大量的C# 业务代码,和.aspx配套使用 |
.ascx | 指明一个Asp.Net用户定义控件 |
.config | 配置文件,用于设置网站应用程序的各种属性 |
.asax | 包含Asp.Net应用程序级事件的事件语法 |
.asmx | 供宿主Web服务在本地货远程使用 |
.ascx文件
- C(Control),ascx是用户控件,用户控件必须嵌入到aspx中才能使用
- 用户控件包含了html、代码和其他Web或者用户控件的组合,并在Web服务器上以自己的文件格式
- 用户控件重用相同的代码,从而节省了大量的开发和测试时间。简而言之,用户控制,增加了代码的可重用性,实现封装,减少开发和维护时间。
.ashx文件
.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
H(HttpHandler),HttpHandler是做什么呢?
首先要明白浏览器与服务器请求-处理-响应的交互方式(看下图),当然HttpHandler(一般处理程序)扮演的即是服务器处理者的角色:
用途:
可以用来处理生成动态图片、 生成动态文本等不需要回传处理的任务。
优点:
- 使用.ashx 可以让你专注于编程而不用管相关的WEB技术。
- ashx仅仅是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程。所以理论是ashx比aspx要快。( aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,事实上,在终于编译的时候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理。)
这个在 .config配置文件中也可以看出来
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较 Simple.响应速度也应该快点吧
缺点:
它处理控件的回发事件非常麻烦。处理数据的回发,通常都需要一些.aspx页的功能,只有自己手动处理这些功能(还不如直接建一个aspx文件来处理)。所以,一般使用.ashx输出一些不需要回发处理的项目即可。
小结
以前是先学习一些知识,再去用知识做一些系统。B/S这段的学习和之前不一样,在这块,我们先做一个系统热热身,再去学习知识。无论哪种学习方法,都有它的意义。我们在以后的学习中也可以选择其中一种方法去学习。
