Speed Up Your ASP.NET Pages

Ok it's not necessarily true in all cases but....

I am currently putting the finishing touches to a business directory I have built using ASP.NET 2.0.  I have used a lot of the .NET 2.0 web controls for the project, and at the beginning all was well.  But as the application grew and I needed to use more SQLDataSources, Repeaters and DropDownList boxes, I noticed that the pages seemed to lag for maybe a couple of seconds before loading. 

I (Foolishly) decided to use an Access Database when starting this app, so instantly thought it must be my good old AccessDB playing up.  So I went through the app and upgraded it so that everything ran off a nice SQL DB. - Still there was some lag on start up which was getting on my nerves... 

After a bit of investigation and reading through my copy of Stephen Walthers - ASP.NET 2.0 Unleashed (Which I have found to be a fantastic book) I started reading more about ViewState.  Upon this newly found information I opened up my default page (Which was the main culprit for hanging) and found this:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPD
wULLTIwNjc1ODc4NjEPZBYCAgYPZBYKAgEPFgIeC18hSXRlbUNvdW50Ag
EWAgIBD2QWAmYPFQgBMxI1Mi4xMjMxODE2MzE5ODMyODYULTAuNDMyMTUwMzEwOTc0NTE
xNTYBMwEzATMBMwEzZAIDDxYCHwACARYCZg9kFgJmDxUGATMBMwxVU0F1dG9tb3RpdmUd
aHR0cDovL3d3dy51c2F1dG9tb3RpdmUuY28udWsdaHR0cDovL3d3dy51c2F1dG9tb3Rpd
mUuY28udWsITUs0MSAwTEZkAgcPPCsACQEADxYEHghEYXRhS2V5cxYAHwACCmQWFGYPZB
YCZg8VAwExGEFjY29tbW9kYXRpb24gJiBQcm9wZXJ0ebECPGEgaHJlZj0ic2hvdy5hc3B
4P2NhdD0xIiBjbGFzcz0ic3ViLWNhdHMiPkVzdGF0ZSBBZ2VudHM8L2E+LCA8YSBocmVm
PSJzaG93LmFzcHg/Y2F0PTE5IiBjbGFzcz0ic3ViLWNhdHMiPkhvdGVsczwvYT4sIDxhI
GhyZWY9InNob3cuYXNweD9jYXQ9MjAiIGNsYXNzPSJzdWItY2F0cyI+SG9saWRheSBIb2
1lczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjEiIGNsYXNzPSJzdWItY2F0cyI
+Q2FtcCBTaXRlczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjIiIGNsYXNzPSJz
dWItY2F0cyI+TGV0dGluZyBBZ2VudHM8L2E+LCBkAgEPZBYCZg8VAwEyEUJ1aWxkaW5nI
FNlcnZpY2Vz8wM8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTIiIGNsYXNzPSJzdWItY2F0cy
I+UGx1bWJlcnM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTIzIiBjbGFzcz0ic3V
iLWNhdHMiPkVsZWN0cmljaWFuczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjQi
IGNsYXNzPSJzdWItY2F0cyI+UHJvcGVydHkgTWFpbnRlbmFuY2U8L2E+LCA8YSBocmVmP
SJzaG93LmFzcHg/Y2F0PTI1IiBjbGFzcz0ic3ViLWNhdHMiPkdhcyBFbmdpbmVlcnM8L2
E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI2IiBjbGFzcz0ic3ViLWNhdHMiPlJvb2Z
pbmcgU2VydmljZXM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI3IiBjbGFzcz0i
c3ViLWNhdHMiPkRlY29yYXRvcnM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI4I
iBjbGFzcz0ic3ViLWNhdHMiPkFyY2hpdGVjdHVyYWw8L2E+LCA8YSBocmVmPSJzaG93Lm
FzcHg/Y2F0PTI5IiBjbGFzcz0ic3ViLWNhdHMiPkdsYXppZXJzPC9hPiwgZAICD2QWAmY
PFQMBMxtJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChJVCmDAjxhIGhyZWY9InNob3cuYXNw
eD9jYXQ9MyIgY2xhc3M9InN1Yi1jYXRzIj5Db21wdXRlciBSZXBhaXJzPC9hPiwgPGEga
HJlZj0ic2hvdy5hc3B4P2NhdD0zMCIgY2xhc3M9InN1Yi1jYXRzIj5JVCBUcmFpbmluZz
wvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MzEiIGNsYXNzPSJzdWItY2F0cyI+Q29
tcHV0ZXIgU2FsZXM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTMyIiBjbGFzcz0i
c3ViLWNhdHMiPk5ldHdvcmtpbmcgU2VydmljZXM8L2E+LCBkAgMPZBYCZg8VAwE0CkVtc
GxveW1lbnQ5PGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00IiBjbGFzcz0ic3ViLWNhdHMiPk
FnZW5jaWVzPC9hPiwgZAIED2QWAmYPFQMBNRxJbnRlcm5ldCwgRGVzaWduICYgTWFya2V
0aW5n/AI8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTUiIGNsYXNzPSJzdWItY2F0cyI+V2Vi
IERlc2lnbiAmIERldmVsb3BtZW50PC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0zM
yIgY2xhc3M9InN1Yi1jYXRzIj5TRU88L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PT
M0IiBjbGFzcz0ic3ViLWNhdHMiPkdyYXBoaWMgRGVzaWduPC9hPiwgPGEgaHJlZj0ic2h
vdy5hc3B4P2NhdD0zNSIgY2xhc3M9InN1Yi1jYXRzIj5BZHZlcnRpc2luZyBBZ2VuY2ll
czwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MzYiIGNsYXNzPSJzdWItY2F0cyI+U
2lnbiBXcml0ZXJzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0zNyIgY2xhc3M9In
N1Yi1jYXRzIj5QcmludGVyczwvYT4sIGQCBQ9kFgJmDxUDATYQVHJhdmVsICYgVG91cml
zbcYBPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD05IiBjbGFzcz0ic3ViLWNhdHMiPlRyYXZl
bCBBZ2VudHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTM4IiBjbGFzcz0ic3ViL
WNhdHMiPkhvbGlkYXkgU3BlY2lhbGlzdHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2
F0PTM5IiBjbGFzcz0ic3ViLWNhdHMiPkxvY2FsIEF0dHJhY3Rpb25zPC9hPiwgZAIGD2Q
WAmYPFQMBNwhNb3RvcmluZ/cBPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0xMCIgY2xhc3M9
InN1Yi1jYXRzIj5EZWFsZXJzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00MCIgY
2xhc3M9InN1Yi1jYXRzIj5DYXIgJiBWYW4gSGlyZTwvYT4sIDxhIGhyZWY9InNob3cuYX
NweD9jYXQ9NDEiIGNsYXNzPSJzdWItY2F0cyI+R2FyYWdlczwvYT4sIDxhIGhyZWY9InN
ob3cuYXNweD9jYXQ9NDIiIGNsYXNzPSJzdWItY2F0cyI+UGFydHMgJiBBY2Nlc3Nvcmll
czwvYT4sIGQCBw9kFgJmDxUDATgSU2hvcHBpbmcgJiBMZWlzdXJl5AM8YSBocmVmPSJza
G93LmFzcHg/Y2F0PTExIiBjbGFzcz0ic3ViLWNhdHMiPlB1YnM8L2E+LCA8YSBocmVmPS
JzaG93LmFzcHg/Y2F0PTQzIiBjbGFzcz0ic3ViLWNhdHMiPlJlc3RhdXJhbnRzPC9hPiw
gPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00NCIgY2xhc3M9InN1Yi1jYXRzIj5DbG90aGVz
IFNob3BzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00NSIgY2xhc3M9InN1Yi1jY
XRzIj5FbGVjdHJvbmljczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NDYiIGNsYX
NzPSJzdWItY2F0cyI+QWN0aXZpdHkgQ2VudHJlczwvYT4sIDxhIGhyZWY9InNob3cuYXN
weD9jYXQ9NDciIGNsYXNzPSJzdWItY2F0cyI+R3ltczwvYT4sIDxhIGhyZWY9InNob3cu
YXNweD9jYXQ9NDgiIGNsYXNzPSJzdWItY2F0cyI+QWR1bHQgU2hvcHBpbmc8L2E+LCA8Y
SBocmVmPSJzaG93LmFzcHg/Y2F0PTU2IiBjbGFzcz0ic3ViLWNhdHMiPlBob3RvZ3JhcG
h5PC9hPiwgZAIID2QWAmYPFQMCMTAPRmluYW5jZSAmIExlZ2FsiAI8YSBocmVmPSJzaG9
3LmFzcHg/Y2F0PTEyIiBjbGFzcz0ic3ViLWNhdHMiPkFjY291bnRhbnRzPC9hPiwgPGEg
aHJlZj0ic2hvdy5hc3B4P2NhdD00OSIgY2xhc3M9InN1Yi1jYXRzIj5Tb2xpY2l0b3JzI
CYgTGF5d2VyczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NTAiIGNsYXNzPSJzdW
ItY2F0cyI+RGVidCBNYW5hZ2VtZW50PC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0
1MSIgY2xhc3M9InN1Yi1jYXRzIj5GaW5hbmNpYWwgQWR2aXNvcnM8L2E+LCBkAgkPZBYC
Zg8VAwIxMRFCdXNpbmVzcyBTZXJ2aWNlc7sCPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0xM
yIgY2xhc3M9InN1Yi1jYXRzIj5PZmZpY2UgU3VwcGxpZXM8L2E+LCA8YSBocmVmPSJzaG
93LmFzcHg/Y2F0PTUyIiBjbGFzcz0ic3ViLWNhdHMiPlRlbGVwaG9uZSBTZXJ2aWNlczw
vYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NTMiIGNsYXNzPSJzdWItY2F0cyI+U2Vj
dXJpdHk8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTU0IiBjbGFzcz0ic3ViLWNhd
HMiPkNvcnBvcmF0ZSBFdmVudHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTU1Ii
BjbGFzcz0ic3ViLWNhdHMiPkNsZWFuZXJzPC9hPiwgZAIJDw9kDxAWAWYWARYCHg5QYXJ
hbWV0ZXJWYWx1ZWQWAQIDZGQCCw8WAh8AAgEWAmYPZBYCZg8VBgxVU0F1dG9tb3RpdmUM
MDEyMzQgMjczMTU1HWh0dHA6Ly93d3cudXNhdXRvbW90aXZlLmNvLnVrHWh0dHA6Ly93d
3cudXNhdXRvbW90aXZlLmNvLnVrCE1LNDEgMExGaVRoZSBVLksuJ3MgbGFyZ2VzdCBXYX
JlaG91c2UgRGlzdHJpYnV0b3Igb2YgcmVwbGFjZW1lbnQgb2YgQW1lcmljYW4gYXV0byB
wYXJ0cyBmb3IgY2FycyBhbmQgbGlnaHQgdHJ1Y2tzLmRkf+5jwBxeGZ/y1IsWJzddd9l8
dgs=" />
 

Now the thing is this page has absolutely no need to use ViewState, so I was a touch confused why I had the above...  Anyhow... In the unleashed book it explains how to disable ViewState via the page directive using the EnableViewState="false"

<%@ Page Language="VB" EnableViewState="false" %>

NOTE: If you want to turn off viewstate for you entire website and not just one page you can also do it in your web.config file

<system.web>
   <pages enableViewState="false"  />
</system.web>

I then relaunced the page and the slight lag I had disapeared!! Thus a valuable lesson learnt in the ASP.NET world. If your hot on your app's speed then check if you actually need viewstate enabled on a particular page - If not turn it off.. Its easy enough to turn back on!

Add comment


 

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]