艾伟_转载:40条ASP.NET开发Tip

1、在compilation 下,请设置debug=false ,如下:

default Language="c#" debug="false">

2、请使用Server.Transfer代替Response.Redirect。

3、使用Validator控件,请要经常检查Page.IsValid。

4、请使用foreach循环,而不是为字符串迭代循环。

5、请使用客户端验证方式(不要每次都在服务端验证)。

6、为了避免重复代码执行,请检查“Page.IsPostBack”。

7、GIF 和PNG类似,但是PNG通常产生一个较小体积的文件。(当然,有些浏览器不支持PNG格式)

8、更新二进制文件时,请使用AppOffline.htm 。

9、除非需要,否则请关闭跟踪。

<trace enabled="false" requestLimit="10" pageOutput="false" traceMode=
"SortByTime" localOnly="true"/>

  

10、编译页面,请禁用AutoEventWireup。在Machine.config文件中请设置AutoEventWireup为false。

11、如果不需要,请关闭Session会话。

<sessionstate timeout="20" cookieless="false" mode="Off" stateconnectionstring
="tcpip=127.0.0.1:42424" sqlconnectionstring="data source=127.0.0.1;Trusted_Connection=no">

12、在你生成最终版本的应用程序之前,请选择Release模式。默认是Debug。

13、如果不需要请禁用ViewState 。

EnableViewState="false"

14、请避免频繁的访问数据库。

15、使用缓存提高你的应用程序的性能。

16、验证所有的用户输入。

17、请最后释放所有资源。

18、String 和Stringbuilder。

      修改字符串时,使用Stringbuilder而不是String ,在每次字符串修改的时候,String都会占据不同的内存空间,而Stringbuilder只使用同一个内存空间

19、切勿直接使用对象的值,先从本地变量获取对象的值,然后再使用。因为直接读取对象的值比读取变量更花时间。

20、避免异常:使用if。

21、代码优化:避免使用:x = x +1,而是使用x+=1比较好。

22、数据访问技术:DataReaders提供快速有效的数据检索方法。在性能方面,DataReader是速度远远超过DataSets 。

23、在做一个笨重的ASP代码的处理之前,你进行检查以确保Response.IsClientConnected。

24、避免session变量,因为每个ASP页面是在不同的线程运行和session调用将会被逐一序列化。这样会降低应用程序。你可以使用QueryString集合或者表单上面的hidden变量来保存值。

25、使buffer有效,能提高性能,如:

<% response.buffer=true %>

 接着使用:

<% response.flush=true %>

26、使用Repeater控件代替DataGrid,DataList,因为它是高效的,可定制的,和可编程的。

27、在数据库中检索大量数据,数据列表消耗更多的时间。

    分页将显示特定的数据,但是要考虑所有数据负载。只取当前页需要的数据。

28、避免内嵌JavaScript和CSS。

29、使用单个的css文件,而不是多个css文件。

    请尽量将您所有的css合并成一个css的类文件,不管文件大小,大量的.css文件会造成大量的请求。.css文件通常是由浏览器缓存,这样一个单一的沉重的.css文件不会导致在每个页面请求时会有漫长的等待。

    内嵌.CSS类导致HTML沉重,因此我觉得:首先考虑一个single.css文件。

30、减少cookie的大小。

31、压缩CSS, JavaScript 和Images。

可以使用在线的压缩,压缩文件,将下列网页和优化的代码替换为您的文件内容。

http://iceyboard.no-ip.org/projects/css_compressor[^]  CSS 压缩
www.xtreeme.com/javascript-optimizer/[^] .  JS 压缩

32、适当地使用缓存。

i、页面输出缓存:

<%@ OutputCache Duration="3600" VaryByParam="none" %>

ii、页片段缓存:

在每个用户控件中写页面输出缓存

iii、数据缓存:

代码

<script language="C#" runat="server"> 
 Protected void Page_Load (Object src, EventArgs e) 
{   
 DataView dv = (DataView) Cache. Get ("EmployeesDataView");   
 If (dv == null)
 { // wasn't there
  SqlConnection conn =    new SqlConnection ("server=localhost;uid=sa;pwd=;database=Test");  
  SqlDataAdapter da =new SqlDataAdapter ("select * from Employees", conn);  
  Dataset ds = new DataSet();
  da.Fill(ds, "Employees");   
  dv = ds.Tables["Employees"].DefaultView;   
  Cache.Insert ("EmployeesDataView", dv);
  conn.Close();
}   
 Else   
 Response.Write ("

Loaded employees from data cache! 

");  
 lb1.DataSource = dv;  
 lb1.DataTextField = "Name";    
 lb1.DataValueField = "Age";   
 DataBind () ;
}   
script> 

 

33、服务器端使用诸如Port80s压缩软件http://www.port80software.com/products/httpzip/[^]。

34、使用了“using”。

35、不要声明成员变量为 public 或者proteted,尽量使用private 成员变量和public/protected 属性。

36、使用strString=string.Empty 代替 strString="" 。

37、请尽可能减轻你的页面文件,尽量避免不必要的标签,例如使用div代替table。

38、在div中写静态的消息,必要的时候才显示出来。这比你设置服务端的label和div的text属性快。

39、如果可能的话,一次性检索数据库中的数据。尽可能不要添加数据库的访问。因此,整合来自不同表datafields和选择它们。

40、给WebControl取个简短的名字。

时间: 2024-08-01 01:39:08

艾伟_转载:40条ASP.NET开发Tip的相关文章

一起谈.NET技术,40条ASP.NET开发Tip

1.在compilation 下,请设置debug=false ,如下: default Language="c#" debug="false"> 2.请使用Server.Transfer代替Response.Redirect. 3.使用Validator控件,请要经常检查Page.IsValid. 4.请使用foreach循环,而不是为字符串迭代循环. 5.请使用客户端验证方式(不要每次都在服务端验证). 6.为了避免重复代码执行,请检查"Page

40条ASP.NET开发Tip

1.在compilation 下,请设置debug=false ,如下: default Language="c#" debug="false"> 2.请使用Server.Transfer代替Response.Redirect. 3.使用Validator控件,请要经常检查Page.IsValid. 4.请使用foreach循环,而不是为字符串迭代循环. 5.请使用客户端验证方式(不要每次都在服务端验证). 6.为了避免重复代码执行,请检查"Page

艾伟_转载:从ASP.NET的PHP执行速度比较谈起

上星期我在InfoQ发表了一篇新闻,对Joe Stagner在博客上发表的三篇关于ASP.NET与PHP性能对比的文章进行了总结.写新闻其实挺不爽的,因为不能夹杂个人的看法,只能平铺直叙陈述事实.当然,如果像某些新闻那样"换一种说法"是可以骗过一些"不明真相的群众",但是这就有违道德了.因此,在客观陈述完新闻内容之后,我只能选择把自己的感想.评论等内容放在自己的博客上. Joe Stagner的背景挺特殊,它是PHP的老用户,在ASP.NET出现之前就是PHP的重量

艾伟_转载:学习 ASP.NET MVC (第一回)理论篇

本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回)实战篇 学习 ASP.NET MVC (第五回)理论篇 MVC三种角色:--Model:用于存储数据的组件--View:根据Model数据进行内容展示的组件--Controller:接受并处理用户指令(操作Model),选择一个View并输出内容.Controller对View进行引用,但是View

艾伟_转载:浅析ASP.NET页面缓存的几点体会

前几天遇到个问题,百思不得其解.后来查阅了一些资料心里才有了点思路.把自己遇到的问题记录下来希望能给其他的园友一些帮助吧. 事情是这样的.我的一个ASP.NET页面用window.open导航后再次访问时没有得到更新,确切的说是再次访问时根本就没有访问服务器.可是这个现象在我的机器上并没有出现,而项目组中其他的机器都有此问题.当时我这个郁闷呐,因为不方便调试,最后就在页面上输出好多alert.终于在几次试验之后发现了问题的所在. 其主要问题就是IE缓存了页面,当服务器端出现更新时IE并没有检查到

艾伟_转载:学习 ASP.NET MVC (第五回)理论篇

本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回)实战篇 学习 ASP.NET MVC (第五回)理论篇 通过前几篇文章,我们通过ASP.NET MVC创建了一个简单的应用程序,学习了ASP.NET MVC的基本框架和工作流程.但是Demo中很多东西都是VS为我们自动生成的,比如View的html代码等.此文和大家一起学习一下ASP.NET MVC

艾伟_转载:学习 ASP.NET MVC (第四回)实战篇

本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回)实战篇 学习 ASP.NET MVC (第五回)理论篇 我们继续ASP.NET MVC之旅.上文中我们实现了对User信息的展示,详细信息的列表,还有错误页的实现.本文继续完成添加,修改,删除的操作.首先我们来完成Controller的代码: Code//        // GET: /Users

艾伟_转载:在Mono中创建ASP.NET程序

一只可爱的猴子: 一次偶然的机会碰到这只猴子,并在工作中也用到它了.现将自己的使用经验分享与此(以OpenSUSE为例介绍). 对于不熟悉Mono的朋友来说,Mono就是.Net在Linux和其它操作系统上的实现(Unix.Mac.iphone.Windows...).Mono的官方网站是:http://www.mono-project.com 严格来讲,Mono是一个开源的.跨平台的C#语言和其CLR的实现,并与微软的.NET二进制兼容.很绕口吧,这是Mono官方网站写的:An open so

艾伟_转载:IIS URL Rewriting 和 ASP.NET routing(上)

新版本URL-rewrite module for IIS 7.0的发布了,ASP.NET Routing组件随着.NET Framework 3.5 SP1的发布,并在.NET Framework 4.0 Beta中进一步成熟.作为ASP.NET 开发人员,我们不免会对这两个功能相近的组件抱有许多疑问,诸如"它们有什么异同?""分别适用于什么环境?"等等.本文旨在描述这两者之间的异同,并为开发人员提供什么时候使用哪一种解决方案的建议. 从表面上看来,这两种技术似乎