转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.NET 2.0 的内部变化         ★★★★

ASP.NET 2.0 的内部变化

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1790 更新时间:2009/4/23 10:45:41
<%@ Page language="c#" Codebehind="PostCache.ASPX.cs" AutoEventWireup="true" Inherits="WebApplication1.PostCache" %> <%@ outputcache duration="30" varybyparam="none" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>WebForm1</title> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <DIV style="DISPLAY:inline; Z-INDEX:101; LEFT:32px; WIDTH:160px; POSITION:absolute; TOP:24px; HEIGHT:8px" align="right" ms_positioning="FlowLayout"> this page was created at: </DIV> <asp:Label id="CreatedTime" style="Z-INDEX:102; LEFT:200px; POSITION:absolute; TOP:24px" runat="server" Width="120px" Height="16px"> </asp:Label> <asp:substitution id="UpdatedTime" methodname="uncachedUpdate" style="Z-INDEX:103; LEFT:200px; POSITION:absolute; TOP:48px" runat="server" Width="112px" Height="11px"> </asp:substitution> <DIV style="DISPLAY:inline; Z-INDEX:104; LEFT:32px; WIDTH:160px; POSITION:absolute; TOP:48px; HEIGHT:16px" align="right" ms_positioning="FlowLayout"> and last updated at: </DIV> <asp:AdRotator id="Ads" style="Z-INDEX:105; LEFT:312px; POSITION:absolute; TOP:16px" runat="server" Width="80px" Height="60px" AdvertisementFile="img/Ads.xml"> </asp:AdRotator> </form> </body> </HTML>

此页面的内含代码文件包含支持 uncachedUpdate 方法的缓存后替换功能所必需的事件。请注意,Page_Load 方法将报告加载页面的时间,因此我们可以确定缓存发生的时间。

列表 8PostCache.ASPX.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication1 {
public class PostCache :System.Web.UI.Page  {
protected System.Web.UI.WebControls.Label CreatedTime;
protected System.Web.UI.WebControls.Label UpdatedTime;
protected System.Web.UI.WebControls.AdRotator Ads;

private void InitializeComponent()  {
this.Load += new System.EventHandler(this.Page_Load);
    }

private void Page_Load(object sender, System.EventArgs e) {
CreatedTime.Text = DateTime.Now.ToShortTimeString();  
    }

protected String uncachedUpdate()  {
return DateTime.Now.ToShortTimeString();
    }
  }
}

当前使用的缓存后替换功能

图 6 显示了 PostCache 页面的输出。首次运行该应用程序时,我们可以看到“page created”和“last updated”时间是相同的。


6:PostCache.ASPX 的输出

以后调用同一页面时,我们将看到使用缓存后替换功能的效果。尽管创建页面的时间和图像仍然相同,但上次更新时间是不同的。


7第二次请求时的 PostCache 输出

由于使用了缓存指令,因此创建时间和 adRotator 图像仍然保持不变。该页面将缓存 30 秒。30 秒过后,创建时间和 adRotator 都将在下次请求时更新。但是,<asp:substitution> 控件(调用 uncachedUpdate() 方法)将在每次请求页面时更新,而不管其缓存状态。

通过正确使用缓存后替换功能,开发人员只需更新页面上的动态内容,从而可以显著提高其 Web 应用程序的性能。将使用 ASP.NET 2.0 开发的 Web 应用程序与数据库缓存过期和异步页面更新相集成,可以消除传统的 Web 请求和响应体系结构暴露出来的许多局限性。

返回页首返回页首

性能

尽管 ASP.NET 2.0 中的基础结构发生了变化而且增加了一些功能,但仍然存在一个问题,那就是 ASP.NET 2.0 的执行速度有多快?因为 ASP.NET 2.0 仍在开发过程中,所以性能方面的数据还无法获得。尽管如此,我们已经付出了很大的努力,以确保 ASP.NET 2.0 框架能够在各方面保持现有的性能或有所改进。

改进的请求管道

所有开发人员都能看到请求管道的性能有所改进。尽管添加了许多新的事件连接,但基本的 ASP.NET 请求堆栈速度要比在 ASP.NET 1.1 中快出高达 30%。您可以通过创建显示“Hello World”的简单页面来感受一下改进的性能。因为该页面不包含高级功能,所以您可以直接测试 HTTPHandler 和 HTTPModule 管道以及连接 ASP.NET 2.0 和 IIS 的 ISAPI 插件。不管使用哪个版本的 IIS,您都能看到性能方面的改进,因为此代码已被优化以加快处理速度。

使用 IIS 6.0 改进的内存管理

ASP.NET 2.0 中的某些性能改进完全是因为使用了 IIS 6.0。例如,如果使用 IIS 6.0,在使用 100 个并发用户请求一个包含几个控件的页面的加载测试中,辅助进程的工作集减少了大约 50%。这意味着,对于给定服务器,操作系统使用的资源大约是以前必须使用的资源的一半。

在专门模拟中等复杂程度的 ASP.NET 页面的测试中,与在 IIS 5.0 上运行的同一页面相比,系统负载(内存和 CPU 使用量)已显著降低。这种特定的性能改进是通过将响应缓冲区从托管内存移至本机内存来完成的。由于不再需要将托管内存固定到特定的响应,因此 ASP.NET 2.0 不仅消除了资源瓶颈,还能够更快地响应每个请求。

其他的性能改进是通过紧密集成 IIS 6.0 与 Windows 操作系统内核而实现的。IIS 6.0 在内核级别执行某些缓存和缓冲操作,从而提高了所有 Web 应用程序(包括 ASP.NET)的性能。

其他改进

作为一名开发人员,您肯定希望 ASP.NET 2.0 与 ASP.NET 1.x 的操作速度相同或更快。现在,核心功能已经具备,您一定能够从最终版本的 ASP.NET 2.0 中看到所期待的其他性能改进。

返回页首返回页首

结论

为了提高开发人员的工作效率,ASP.NET 2.0 进行了许多体系结构方面的改进。不仅改进了代码模型以减少冲突,还扩展了编译进程,从而为编译和部署 Web 应用程序提供了多种选择。ASP.NET 框架的可扩展性再次通过新的 HTTPModules 和 HTTPHandlers(支持 ASP.NET 中的许多新功能,包括个性化、母版页和管理站点)显示出来。缓存功能得到改进,允许使用数据库依赖关系和缓存后替换功能。从内部来看,ASP.NET 2.0 与以前的版本相比具有很大的改进;新的实现并入了开发人员驱动的许多改进功能,同时沿用了行业最佳做法。ASP.NET 2.0 提供了世界一流的 Web 开发平台,可以处理复杂的企业 Web 应用程序开发。

参考资料

CodeNotes for ASP.NET

A First Look at ASP.NET V. 2.0

ASP.NET 2.0 Revealed

关于作者

Jayesh Patel - Jay Patel 是擅长 .NET 和 Java 技术的开发人员。Jay 主要研究基于模式的编程和灵活的方法。

Bryan Acker - Bryan Acker 是 Infusion Development 的技术撰稿人。Bryan 在 ASP 和 ASP.NET Web 开发及 Web 托管技术方面有着很强的专业背景。

Robert McGovern - Rob McGovern 是 Infusion Development 的高级撰稿人、开发人员兼项目经理。Rob 曾参与几个不同的 ASP.NET 项目,包括“CodeNotes for ASP.NET”和“JSP to ASP.NET migration guide”。

Infusion Development Corporation 是通过 Microsoft 认证的解决方案提供商,为世界 1000 强企业提供量身定做的软件开发、培训和咨询服务,主要服务于金融服务行业。Infusion Development 在纽约和多伦多设有办事处,已建立一定的国际客户基础,包括金融服务、证券经纪和软件开发行业中的一些世界最大的公司。Infusion Development 的员工也是 CodeNotes 系列丛书的作者和创始人。

上一页  [1] [2] [3] 


[C语言系列]NET 中C#的switch语句的语法  [聊天工具]MSN群V2.0Beta1发布 不安装MSN群也能群聊__天极Ye…
[系统软件]托拽Explore中的文件到VB.net的窗口  [系统软件]Boost库在XP+Visual C++.net中的安装
[常用软件]新配色面板:Paint.Net3.0RC1官方下载  [常用软件]bcastr2.0 通用的图片浏览器
[常用软件]最终功能完成:Firefox 2.0 RC1推出  [常用软件]用内建的“Net Meeting”聊天
[VB.NET程序]Henry的VB.NET之旅(三)—共享成员  [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台