To maintain the scroll position after postbacks is important for larger web pages in order to let the user know exactly what is going on. It is good usability and something you would expect in modern web applications.

In ASP.NET 1.x you were able to do it simply by setting the SmartNavigation property to true on the page. The problem with SmartNavigation we numerous and did more harm than good. It was not cross-browser and it could mess up your own JavaScript. That’s part of the reason why it has been deprecated in ASP.NET 2.0.

Instead of SmartNavigation, ASP.NET 2.0 introduced the MaintainScrollPositionOnPostBack property, which does exactly what the name applies. It has a much smaller impact on the output and it is cross-browser compliant. There are three ways of applying the property to a web page.

You can set it programmatically
Page.MaintainScrollPositionOnPostBack = true;

In the page declaration
<%@ Page MaintainScrollPositionOnPostback="true" %>

Or in the web.config´s <system.web> section.
<pages maintainScrollPositionOnPostBack="true" />

This feature is an absolute must-have on large web pages built for postback scenarios. The beauty of it is the simplicity and the low impact.

Whenever you need to write files to a temporary location, you can take advantage of Window’s own temporary file store location. It has write permissions by default, which often is a problem for especially hosted websites and applications.

The temp folder could be located here C:\Documents and Settings\Username\Local settings\Temp\ if the application is run under Windows user credentials. Because the location is not the same in all scenarios, you can ask .NET where the current temp store is located by using the Path class.

string temp = System.IO.Path.GetTempPath();

For some applications I think it is a good choice to let Windows decide where to put the temp files. It also makes it easier for the user to clean up using the Disk Cleanup utility found in Start/Accessories/System tools.