开发高性能的ASP.NET Web应用程序,不仅需要高质量的代码,还需要兼顾其他很多方面的考虑,本文将简要讨论并总结出开发高性能的Web应用的注意事项:
1、避免到服务器的不必要往返传输。通常来讲[hjp2=400,300,true]http://www.docin.com/players/DocPlayer.swf?category=3&productId=58787306&shareLocationId=9[/hjp2],有很多时候我们是不需要将信息传递到服务器端进行处理,当出现这种情况的时候,一点要避免使用导致将信息传递到服务器的代码,这样不仅能提高网页的性能并且还能提高用户体验。总之,能使用客户端控件和Javascript能完成的功能绝对不要用服务器端控件。
2、记得使用Page对象的IsPostBack属性来避免对往返行程不必要的处理。
3、只是在必要时候保存服务器控件的视图状态。在默认的情况下,ASP.NET为所有服务器控件启用视图状态。如果服务器控件绑定的是每次数据参数往返行程上的数据,因为控件的值每次都会更新,所有保存视图状态没一点用处,这种情况下应当禁用视图。可以将控件的EnableViewState属性设置为false来禁用控件视图,也可以使用@Page指令禁用整个页面的视图状态。
代码为:<%@ Page EnableViewState="false"%>
4、除非有特殊的原因要关闭缓存,否则将缓存保持打开。关于如何在应用程序中选择使用好的缓存策略,是令一个话题,所有的asp.net程序员都应当学会高效使用缓存策略。
5、在同一个应用程序中的不同asp.net页面之间的重定向,尽量使用Server.Transfer()方法。对与Response.Redirect()方法和Server.Transfer()的各自的优缺点,简单比较:
1、Response.Redirect可以切换到任何存在的网页。
2、Server.Transfer只能切换到同目录或者子目录的网页。
3、302重定向是被搜索引擎反对
4、Server.Transfer要先把当前页面POST过来的数据保存住,再去执行新的页面,而Response.Redirect只是简单的回复一个重定向的指令就完事。因此如果对这两个方法做测试的话,Server.Transfer方法使用的时间应当是要比Response.Redirect方法使用的时间要多的。
5、Server.Transfer()可以完成另外一些功能,比如可以在下一个Web Form中访问到前一个Web Form中的server control,例:WebForm1.aspx 有一个文本框名为 TextBox1,你利用 preserveForm 为 True 传递到 WebForm2.aspx,你仍然可以用 Request.Form("TextBox1") 来取得文本框的值。这种技术对向导式的多页面输入很有用。
http://www.docin.com/players/DocPlayer.swf?category=3&productId=58787306&shareLocationId=96、当使用SQL Server存储数据时,应当尽量使用存储过程访问数据。因此asp.net程序员都应当学会编写高效的存储过程。
7、在应用程序中如果只是读取访问数据,使用SqlDataReader对象而不是DataSet对象。而且DataSet的DataBind()是一个比较费时的操作。
8禁用调试模式。因为在调试模式下,Web应用程序的性能将受到比较大的影响,因此,在部署Web应用程序或进行任何性能测试之前,始终禁止调试模式。只在开发过程中开启调试模式。
9、优化配置文件。应当尽可能的优化Web服务器和Web应用的配置文件来符合自己的需要。在默认的情况下,ASP.NET配置被设置成启用最广泛的功能集并尽量适应最常见的情况。
10、在编码时,不要以来代码中的异常。不是说不要使用异常,在代码中应当捕捉所有可能发生的异常,但是我们应当尽量让异常不起作用。
11、使用缓存。对于经常访问的数据可以通过缓存技术来将数据进行缓存,对于页或者控件则可以选择页输出缓存技术来进行缓存,以提高页面的响应速度。
各位如果还有其他的一些提高ASP.NET Web应用程序性能的小建议也请补充一下哈....一起学习,一起进步....