views:

763

answers:

5

Hi, I am planning a high performance e-commerce project in asp.net and need help in selecting the optimal data retrieval model for the product catalog.

Some details, - products in 10-20 categories- 1000-5000 products in every category - products listed with name, price, brand and image, 15-40 on every page - products needs to be listed without table-tags - product info in 2-4 tables that will be joined together (product images not stored in db) - webserver and sql database on different hardware - ms sql 2005 on shared db-server (pretty bad performance to start with...) - enable users to search products combining different criteria such as pricerange, brand, with/without image.

My questions are, - what technique shall I use to retrieve the products? - what technique shall I use to present the products? - what cache strategy do you recomend? - how do I solve filtering, sortering, pageing in the most efficient way? - do you have any recomendations for more reading on this subject?

Thanks in advance!

A: 

Let the SQL server retrive the data. With fairly good indexing the SQL server should be able to cope.

in SQL 2005 you can do paging in results, that way you have less data to shuffle back and forth.

Richard L
thanks for your reply. how should you recomend me to work with cache? should I use LINQ, incode SQL or stored procedures for the best results? Best regards,Fredrik
Fredrik
A: 

I think you will end up with a lot of text searching. Give a try for either lucene or Solr ( http server on top of lucene). CNET developed solr for their product catalog search.

Bharani
Hi, thanks for your reply. Sorry for not providing this info...but, we will use tags in the database for the product properties that will be used for search. most of these will be integers. best regards, Fredrik
Fredrik
A: 

Have you thought about looking at an existing shopping cart platform that allows you to purchase the source code?

I've used www.aspdotnetstorefront.com

They have lots of examples of major e-commerce stores running on this platform. I built www.ElegantAppliance.com on this platform. Several thousand products, over 100 categories/sub-categories.

hi, thanks for your reply. buying a solution is unfortunately not an alternative for us right now as we need to be flexible and in full control. best regards, Fredrik
Fredrik
A: 

Make sure your database design is normalised as much as possible - use lookup tables where necessary to make sure you are not repeating data unnecessarily.

Store your images on the server filesystem and store a relative (not full) path reference to them in the database.

Use stored procedures for as much as possible, and always retrieve the least amount of data as you can from the server to help with memory and network traffic efficiencies.

Don't bother with caching, your database should be fast enough to produce results immediately, and if not, make it faster.

ck
hi, thanks for your reply. this is the solution we´ve been looking at. however, we have been thinking about using cache to store the different categories with products and then use LINQ to filter the results. what do you think about that solution? best regards, Fredrik
Fredrik
A: 

Take a look at the Duwamish example project (download page) from Microsoft. It's a little old so there is no linq in the project, but it makes a great use of ADO.Net and ASP User Controls capabilities.

Michael Pereira