Remember Me
forgot your password?

Optimizing Your Asp.Net Pages for Faster Loading and Better Performance.

If you read the internet and all of the websites dedicated to Asp.Net you will inevitably read about the wonders of the DataGrid, DataList, and Repeater controls. While each of these has its place, if you are only displaying data there is a much faster and more efficient means to do so.

Let's say you have a page that displays articles based on a query string. Take my article pages for instance. Each article is stored in a database and displayed on the page based on the unique id of the article as stored in the database.

A normal asp page execution procedure goes something like this. The code queries the database based on the Article I.D. and then brings back that information to the page where you display it in the fashion that you would like. This is a fairly straight forward approach with asp and is done all the time.

So how do we speed up our asp.net pages?

Number 1: Use Asp.Net Caching!

This is a no-brainer, and I won't go into the brilliance or details of asp.net caching here because at the time of this writing Google has 2,780,000 articles on the topic. Basically instead of querying the database each time the page is loaded you only query the database once and load that result into the system cache. Subsequent calls to load the page retrieve the data from the cache as opposed to the database which gives you an instant and considerable performance boost. You can then set the cache for how long the cache should store the information as well as many other features. If you are not using the cache, you should be whenever possible!

Number 2: If possible, do NOT use the standard Asp.Net controls.

That's right. The standard asp.net controls are designed for rapid development and not page performance. They allow you to design pages that grab and display data very quickly but their actual performance suffers because of the extra overhead which is there for ease and speed of development time and not page execution speed.

Instead, create either a User Control or even better yet a Web Custom Control which is by far the fastest performance wise and really quite easy to create and use.

Number 3: Use an SqlDataReader or even better yet use a set based command for Sql Server data retrieval and simply execute that one command against the database.

An asp.net SqlDataReader is a fast forward only datareader that closes the connection after it reads the last set of results. Now for my article pages we are only returning 1 particular result. In this case we would opt for the set based command. If you had more than 1 result returned, in your table of contents for instance, you would use the SqlDataReader because you are returning multiple sets of results.

Set based commands are stored procedures that bring back data through parameters as opposed to a result set which then in turn needs to be looped through to obtain your data. So instead of writing your stored procedure like the following which brings back 1 result set:

Select Title, Body, Author
From Articles
Where ArtID = 215

We can write it using a set based command like this.

Create Procedure mysp_GetArticle

@Title varchar(200) Output,
@Body varchar(8000) Output,
@Author varchar(500) Output

As

Select @Title = Title, @Body = Body, @Author = Author
From Articles
Where ArtID = 215

GO

The above query will return only the three parameters called for and not a result or record set so you don't have to then walk through the returned record set that has only 1 result in it anyway. This second little process of work decreases your performance so you should avoid it whenever possible. Combine this technique with the asp.net cache.

Number 4: Use Classes and ArrayLists as opposed to returning an SqlDataReader.

Create a class and then if there are more than one set of results store those results into individual instantiations of that class. Finally store each of those classes into an ArrayList. You can then store only that ArrayList into the asp.net cache. So instead of getting the results back from a SqlDataReader when loading your page you get them from the ArrayList which is stored in the cache. Nice huh?

Finally... you want to incorporate all of these techniques into your final results which would be performed in the following manner and sequence.

On the first time the page loads, query the database and return all of your data storing it into individual classes. Then store each of those classes into an ArrayList. If you only have one single result you may store only the class into the cache. Then take your ArrayList and store it into the cache.

Next create a Web Custom Control and pass the cached ArrayList to the custom control and loop out your data using the HtmlTextWriter which is very fast. Remember each subsequent call to load the page will be called from the cache which stores your ArraList of classes or your single class.

Certainly it takes a significant amount of additional coding to do it in this fashion, especially when you take proper error handling into consideration, but if you follow this approach your pages will be screeching fast, you will immediately notice the difference, and your asp.net pages will execute in the proper sequence - Data handling in the PageLoad function and the html display in the PageRender function.

Further, you will be glad you did and so will your visitors.

Happy Programming!

John Belthoff

John Belthoff is an avid web developer who writes about Asp.Net in his spare time. He owns a Windows Asp.Net, Asp Web Hosting Company where you can contact him about hosting your website/blog or just to learn more.

Rate this Article: 5 / 5 stars - 1 vote(s)
Print Email Re-Publish

Add new Comment



Captcha

  • Latest Programming Articles
  • More from John Belthoff

The benefits of Silverlight reporting

By: chaudhary fahim | 04/01/2010
Nowadays, more Internet users are investing in Silverlight reporting services because these programs make the creation of reports easier than usual.

Silverlight Viewer – The Most Effective Application For Net Reporting

By: chaudhary fahim | 04/01/2010
With the advent of Internet and WWW, there is a rapid development and improvement in every field.

Cakephp Shopping Cart

By: Digisha Modi | 04/01/2010
CakePHP is a stable, secure, rapid-development framework for building any complex websites or ecommerce Web application in PHP. CakePHP is based on an MVC architecture that is both powerful and easy to understand. CakePHP provides an extensible architecture for deploying, developing and maintaining web applications. CakePHP reduces development costs and helps developers write less code.

Learning about the Silverlight report viewer

By: chaudhary fahim | 04/01/2010
The benefits of desktop applications encompass quick and easy uploading.

Cakephp Development Solution

By: Digisha Modi | 04/01/2010
CakePHP is open source web application frame work. Base language used in CakePHP is PHP, compatible with PHP4 and PHP5 and MVC architecture. It is introduced after the concept of Ruby Rails. Its basic advantage is to provide architectural base in creation of Websites. CakePHP is recent system of open source customization. This system follows the pattern of model-view-controller (MVC) like other systems of open source customization.

Create Your Own Silverlight Reports

By: chaudhary fahim | 04/01/2010
Silverlight report is an innovative web reporting tool which is an add-on for Microsoft Silverlight.

HOW TO HIRE RUBY ON RAILS DEVELOPERS & PROGRAMMERS AT AFFORDABLE RATE

By: prachi upadhyay | 04/01/2010
Hiring ROR developers & programmers give higher convenience to the people who want to hire them for the web development purpose. And so, hiring the Ruby On Rails developers & programmers at affordable prices is possible very easily and conveniently, with which lot of time, money and resources can be saved from both the ends-ROR developers & programmers service providers as well as the person hiring them.

Most Information about micro sd 2 gb

By: Beerbohm Max | 04/01/2010
Consumers should know that by using micro sd 2 gb can increase the mobile life with microSD removable memory card. Also this versatile card micro sd 2 gb expands the memory capacity of feature-rich mobile phones.

Optimizing Your Asp.Net Pages for Faster Loading and Better Performance.

By: John Belthoff | 27/04/2006 | Programming
If you read the internet and all of the websites dedicated to Asp.Net you will inevitably read about the wonders of the DataGrid, DataList, and Repeater controls. While each of these has its place, if you are only displaying data there is a much faster and more efficient means to do so.

The Art of Playing Jazz Guitar - A True Preparation Primer Part 2

By: John Belthoff | 17/04/2006 | Art & Entertainment
In part 1; we discussed various metronome techniques to advance our awareness, concentration, feeling, and broaden our minds while practicing. This article will go into what we should be practicing and thinking when using those techniques.

The Art of Playing Jazz Guitar - A True Preparation Primer Part 1

By: John Belthoff | 26/03/2006 | Art & Entertainment
I'm not going to kid you; playing Jazz Guitar is extremely difficult at best and almost downright impossible at worst. However there are things you can do to improve your improvisation skills and feeling...

Submit Your Articles Free: Signup
Article Categories




Use of this web site constitutes acceptance of the Terms Of Use and Privacy Policy | User published content is licensed under a Creative Commons License.
Copyright © 2005-2008 Free Articles by ArticlesBase.com, All rights reserved. (0.25, 6, w2)