Click here to Skip to main content
15,860,972 members
Articles / Web Development / ASP.NET

ASP.NET Web Site Performance Improvement

Rate me:
Please Sign up or sign in to vote.
4.88/5 (22 votes)
28 May 2009CPOL3 min read 120K   100   15
Tips to speed up your ASP.NET applications.

Introduction

Recently, I developed a web application which calls many services and loads a lot of data in every page with a lot of calculation in the background from the database, so the site became slower. Then, I started searching Google to find out a good solution, and got some real good ideas to improve my web application's performance. Here, in this article, I am sharing the tips I applied in the application to improve its performance, and it really works fine now.

Things I Have Done

1. HTTP Compression

HTTP compression is used to compress page content from the server end. It compress HTTP requests and responses, so is a great performance improvement. My project is hosted in Windows Server 2003, and I implemented HTTP compression after reading this article.

2. Disable Possible ViewState

View State allows the page state to be persisted with the client, and it does not require cookies or server memory. View State saves data in a hidden input filed inside a page. Definitely, it is a powerful feature, but the drawback is it increases page size and memory allocation in the server.

So, we should avoid View State where it is not necessary. Especially, in the case of DataGrid controls, we should avoid View State as it loads all the grid data in the page state.

In my application, I disabled View State for most of the controls and pages where View State is not necessary. THis made the page sizes smaller.

3. Changes in the Web.Config File

  1. Use page caching:
  2. This will save your page only for a certain amount of time, and the page will be faster to load. But, remember that if your page data changes frequently, it is not a good idea to use page caching.

    XML
    <caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="cached" duration="600" 
                varyByParam="none" enabled="true"/>
        </outputCacheProfiles>
    </outputCacheSettings>
    </caching>
  3. Remove unnecessary httpModules from the web.config:
  4. XML
    <add name="ScriptModule" 
         type="System.Web.Handlers.ScriptModule, System.Web.Extensions, 
               Version=3.5.0.0, Culture=neutral, 
               PublicKeyToken=31BF3856AD364E35"/>
    <remove name="WindowsAuthentication" />
    <remove name="PassportAuthentication" />
    <remove name="AnonymousIdentification" />
    <remove name="UrlAuthorization" />
    <remove name="FileAuthorization" />
  5. Turn off trace:
  6. XML
    <trace enabled="false" pageOutput="false" />
  7. As I have used membership, I disabled automatic save for profiles:
  8. XML
    <profile enabled="true" automaticSaveEnabled="false" />
  9. Set debug=false:
  10. XML
    <compilation debug="false">

4. Implement Cache Dependency

Three types of cache dependencies are available:

  1. Caching Dependency on cached items
  2. Cache Dependency on a file
  3. Cache Dependency on SQL

For my project, I used cache dependency on file. For your project, you can choose to use a dependency based on which will be the best fit for your application. Here is a nice example of cache dependency on file.

5. Optimize Stylesheets

It is important to clean up style sheets and remove unnecessary code from style sheets because it increases the load time. Remove all unnecessary classes from style sheets and try to use a single CSS file. In my project, I have used a tool to reduce the size of my stylesheet. I used this service to reduce the size of my CSS file by 20%.

6. Optimize JavaScript

I optimize my JavaScript using this service.

7. JS and CSS File Position

According to the advice from some good articles, I put the CSS file declaration at the top of my master page. It is recommended to call CSS files at the top of a page because the page rendering will progressively become efficient.

I put JavaScript file links at the bottom of the main master file. If we put scripts at the top of the page, then it will cause unnecessarily high load times.

8. server.transfer() Instead of response.redirect()

Where possible, I use server.transfer() instead of response.redirect(). It loads pages faster because it posts only the form, not the complete page.

9. Client-side Script for Validation

For page validation, I use client-side validations instead of postbacks. This way, I reduce round trips in pages.

Points of Interest

There are many more things that can be done to improve the performance of a web application. Given below are the links of some very good articles:

History

  • 26th May, 2009: First version.

I plan to add more performance tuning tips in the future.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Canada Canada
Software engineer with broad experience in enterprise application development, product deployment automation, software test & test automation, application & system management, and manage big projects and team using proven agile technologies.

Passionate on Microsoft technologies, developed solutions using C#, .net (1.1/2.0/3.5/4), SQL Server (2005/2008). Work on Powershell, SSRS, SSIS, WPF, Ajax, WCF, JQuery.

Develop innovative application with cutting edge technologies always boosting inside.

Comments and Discussions

 
GeneralMy vote of 3 Pin
Rajesh Buddaraju7-Apr-14 4:01
Rajesh Buddaraju7-Apr-14 4:01 
Questiongood resource Pin
Member 1026176430-Sep-13 18:58
Member 1026176430-Sep-13 18:58 
GeneralThanks Pin
kalpesh2118-Feb-13 1:20
kalpesh2118-Feb-13 1:20 
QuestionAnother good post for performance Pin
mitesh98757-Nov-11 18:42
mitesh98757-Nov-11 18:42 
GeneralGreat and Excellent Pin
VinceMc14-Aug-09 3:39
VinceMc14-Aug-09 3:39 
GeneralHTTP Compression Pin
Sameer Alibhai7-Aug-09 4:04
Sameer Alibhai7-Aug-09 4:04 
GeneralDisable ViewState Pin
mark4asp23-Jun-09 5:55
mark4asp23-Jun-09 5:55 
GeneralImage/static file caching Pin
Ken McAndrew2-Jun-09 2:14
Ken McAndrew2-Jun-09 2:14 
GeneralRealy Great Pin
Jahedur Rahman Chowdhury1-Jun-09 18:37
Jahedur Rahman Chowdhury1-Jun-09 18:37 
GeneralRe: Realy Great Pin
Ashrafur Rahaman2-Jun-09 8:33
Ashrafur Rahaman2-Jun-09 8:33 
you r welcome Smile | :)

Ashrafur Rahaman

GeneralPoint# 8 Pin
Cybernate29-May-09 8:06
Cybernate29-May-09 8:06 
QuestionRe: Point# 8 Pin
Ken McAndrew2-Jun-09 2:10
Ken McAndrew2-Jun-09 2:10 
GeneralMy vote of 5 Pin
yordan_georgiev29-May-09 1:03
yordan_georgiev29-May-09 1:03 
GeneralRe: My vote of 5 Pin
kalpesh2118-Feb-13 1:18
kalpesh2118-Feb-13 1:18 
GeneralPoint #9 needs more clarification Pin
T.D.Brown28-May-09 8:42
T.D.Brown28-May-09 8:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.