Is there any particular reason to use one over the other or it's all just a personal preference in the end?
Go for the one that you can do better. It's pointless to chose a technology just because one is smarter than the other. We normally conclude our decision of choosing a technology based on the experience and expertise of most of the team members. We don't want to spend time in drilling down into new technology on projects with sensitive dead-lines. Having said that, I'd like to mention that we are also not monotonous and conservative to not adopt the new technology but yes we have our own processes of adopting to new technologies, standards and methodologies. If you have worked earlier in asp.net webforms then I'd recommend you to go for webforms over mvc because you'll be able to deliver more confidently and timely since you're already familiar with that and of course because of large amount of resources and material already available on the web. You can in parallel check and research on asp.net mvc while focusing on your project and start doing small things of your project in asp.net mvc. This is a nice way of transition because this way you get to migrate from webforms to mvc by comparing the differences in implementation of similar things in mvc over webforms.
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 do 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 attributes = 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 that 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.
While it is possible to butcher ASP.NET WebForms into doing the above, it's much easier and a more natural fit for ASP.NET MVC.
All things being equal I would choose MVC over WebForms any day, but as 'this. __curious_geek' says if your team doesn't have the skillset in MVC and there are time pressures maybe WebForms would be a better choice. But if time permits I would recommend training your team in MVC getting them up to speed, not that's that hard, a lot of what you know in WebForms does transfer over to MVC.
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 other partners (tracking solutions, search engine optimizers, paymentproviders). You work closer to the http-protocoll and that makes it easier to translate requirements from other partners to your code. They will hardly discuss the limits of the postback-model with you.
I also like that it was easier to do performance tests in ASP.NET MVC. In ASP.NET the toolset is very limited, because 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 can offcourse still cache in the backend.
My experience is: If you want to do an e-commerce site then use ASP.NET MVC.