I'm placing this here as a note to read this again someday (and hopefully to have others read it). What a great article - http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/.
Very brief overview:
- Reduce the time and number of round trips to the database by returning multiple resultsets.
- Learn to optimize the paging feature of ASP.NET's GridView control.
- Leveraging connection pooling (http://www.ondotnet.com/pub/a/dotnet/2004/02/09/connpool.html).
- Understand and use the ASP.NET caching API (http://aspnet.4guysfromrolla.com/articles/022802-1.aspx).
- Think about caching data frequently used during the lifetime of a single request.
- Background processing. Here I'm dissapointed he didn't mention asynchronous pages in ASP.NET - but I know what he's getting at (http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/).
- Page-level output caching (http://aspnet.4guysfromrolla.com/articles/022802-1.aspx).
- Run IIS 6.0 (7.0?). He really likes (and so do I) the concept of kernel-mode page output caching.
- Use GZIP compression. Duh (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/25d2170b-09c0-45fd-8da4-898cf9a7d568.mspx?mfr=true).
- ViewState optimizations. Honestly - in my tasks, I turn off ViewState as much as possible.