Improving .NET Website Perfomance

By nat

A couple of the CJ Dev team were down in Brighton for Re-Mix 2008 a few weeks ago, and one of the most useful sessions I went to was "ASP.NET Front End Performance" by Chris Hay.

There's some really obvious things, but others that I didn't know. I've collated the key points together for easy reference:

  • Combine all JavaScript files together (i.e. single request)
  • Combine all CSS files together (i.e. single request)
  • Use inline scripts and CSS on the home page, load script and CSS assets post UI
  • Reduce image requests
    • Use image maps
    • Use large background images
  • Implement IIS caching
  • Use versioning policy on filenames to avoid unwanted caching (e.g. my-js-file-001.js)
  • Use Server.Transfer instead of Response.Redirect where possible
  • Use SilverLight controls for common areas of the site (headers, footers, etc.)
  • Implement HTTP compression in IIS
  • Use the .NET ViewState wisely
    • Only on pages where necessary
    • Compress the ViewState
    • Offload ViewState to Session if possible / advantageous
  • Avoid use of .NET UpdatePanel control where possible
  • Expose web services to AJAX for use by JavaScript code, manually altering DOM
  • Combine auto generated scripts by .NET framework (e.g. ScriptResource.axd)
    • Use script resource profiler to discover all script files
  • Use SilverLight instead of AJAX
    • Detect presence of SilverLight, and fail safe to AJAX if preferred to forcing use of SilverLight
  • Use Content Delivery Network where applicable (large projects) to bring the content closer to the user
  • Implement use of data caching
  • Use page / control output caching  
  • Queue requests for processing (if any large / long requests will occur)
  • Ensure all debug flags are removed from application

Cheers to Chris Hay!!

Related posts