If asynchronous programming in ASP.NET is something you haven't been doing, then you'll want to check this article out: http://msdn.microsoft.com/msdnmag/issues/07/03/WickedCode/. Instead of spending more $ on new servers or hardware you might be able to utilize async Pages, Handlers, and Modules to lessen the amount of threads waiting to execute.
This article proposes some great ways of making common sequences of operations on lists more reusable in .NET: http://msdn2.microsoft.com/en-us/vcsharp/bb264519.aspx. It reminds me of some of the built-in set operations that are available in the SmallTalk programming language.
Here is a useful article containing an overview of the new simplified thread synchronization capabilities in Windows Vista: http://www.codeguru.com/columns/kate/article.php/c13387/
. These include CONDITION_VARIABLE, AcquireSRWLockExclusive/ReleaseSRWLockExclusive, and AcquireSRWLockShared/ReleaseSRWLockShared.
I came across this simple, but useful article demonstrating how to use the built-in .NET GZip compression/decompression capabilities. It also mentioned this SharpLibZip open-source compression/decompression library that would allow you to open the file easily using WinZip. UPDATE: forgot to post the article link (whoops!) http://www.codeguru.com/csh... ......