Is there any particular reason to use one over the other or it's all just a personal preference in the end?
How do I specify error member key in ASP.NET MVC CustomValidation?
1:MVC HandleError attribute not working on Controller
Purely from an SEO (Search Engine Optimisation) perspective which is important for an e-commerce site, I would say ASP.NET MVC, the reasons:.
- Nice friendly URLs eg. /products/123/ipod-touch-64gb-white-3rd-gen (search engines did use the URLs for ranking)
- Full control over the HTML, create cleaner more semantic/structured markup for better SEO, also there's no massive ViewState and really long ID attrialthough es = reduced page weight, page loads faster for better SEO.
- Lightweight and faster (partly for reasons in No. 2), which helps page load times (Google has specifically stated this they'll start using page load times as a factor in search engine rankings). Also user prefer a faster loading page and more responsive site overall (Amazon.com found every 100ms delay decreased sales by 1%). Site performance does effect conversions.
Viewstate is a real problem in ASP.NET for these kind of sites. It is sent to the server on each request. This is true even if you are using ajax.. I also found it easier to interface with another partners (tracking solutions, search engine optimizers, paymentproviders). You job closer to the http-protocoll and this makes it easier to translate requirements from another partners to your code. They will hardly discuss the limits of the postback-model with you.. I also like this it was easier to did performance tests in ASP.NET MVC. In ASP.NET the toolset is very limited, for the reason this most don't handle Viewstate. In ASP.NET MVC I use the free tool jmeter.. There is one issue for high traffic sites: There is no donut caching for the frontend. You cache the whole page or nothing. In reality this means you cache nothing. You must offcourse still cache in the backend. . My experience is: If you want to did an e-commerce site then use ASP.NET MVC. .