Top Tens
I found two interesting top 10 lists yesterday. From MSDN Magazine, 10 Tips for Writing High-Performance Web Applications is a fine read. I'll summarize:
- Return Multiple Resultsets
- Paged Data Access
- Connection Pooling
- ASP.NET Cache API
- Per-Request Caching
- Background Processing
- Page Output Caching and Proxy Servers
- Run IIS 6.0 (If Only for Kernel Caching)
- Use Gzip Compression
- Server Control View State
My personal experience comes from having been an infrastructure Program Manager on the ASP.NET team at Microsoft, running and managing www.asp.net, and helping architect Community Server, which is the next version of several well-known ASP.NET applications (ASP.NET Forums, .Text, and nGallery combined into one platform). I'm sure that some of the tips that have helped me will help you as well.
However, I don't agree with Rob's tendency to treat stored procedures as a silver bullet for database performance. Stick with smartly written parameterized SQL until you know where you need to optimize, and deal with the procs on an as-needed basis.
The other top ten list of interest is Mathew Nolton's top 10 things to do on a software project. Some great insights that jibe with my experience. At every stage of a project, we need to concentrate on creating small, simple, focused things that have some chance of actually getting used. That applies to the project plan, the documentation, and the application itself. It always amazes me how easily people, even on small teams, fall into the ruts of bureaucracy and process for the sake of process.