I currently have a very functional customised online ordering website written from scratch in ASP. This was built approx 4 years ago, and works exceptionally well.

I need to build a similar one for another company. Do I simply upgrade and get a like product developed in ASP.Net 2.0, or do I need to do some homework on other options such as PHP, Rails, Django, Magento etc?

The new site will need to use Ajax (or something similar) and other Web 2.0 features in which I know ASP.Net can handle.

Are there other simple frameworks available to create a customised online ordering type of application? As an example, I have heard that Rails and Magento are very difficult to customise etc.

Do I use the devil I know?

+1  A: 

If you are looking at AJAX, then rather than vanilla ASP.NET, I'd look at ASP.NET MVC; this is a much cleaner model (more logical too, IMO) - and it plays very well with jQuery for the ajax, since you have much more control over both the html and the paths.

Also, jQuery now has intellisense in VS20008, making it even more inviting.

I can't comment on PHP - but the ASP.NET MVC is at least in roughly familiar territory. But note that ASP.NET (including MVC) is a lot more than just a straight upgrade to ASP.

Marc Gravell

My work is split between ASP.Net and PHP. I'd say , in general, I prefer the former for larger projects and the latter for small quick (in terms of dev time) things. In my experience, PHP's advantages over ASP.Net are cheaper hosting and larger user base (easier for the client to find someone to work on the app if you become unavailable in the future). If those aren't top priorities, I'd say stick with .Net. And definitely take a look at ASP.Net MVC and jQuery, as Marc recommended.

+1  A: 

If your current solution works and this new project doesn't require major changes and/or anything that you cannot do using ASP you should consider not switching but staying with ASP. Regarding AJAX, you shouldn't have any problem with the ASP.

+1, unless you need some specific functionality that come with, then stick with the existing code - you'll get further faster that way.

ASP.NET MVC all the way.

Easier port, more professional, safer and better for large projects.

Andrei Rinea

I think it all goes around what level of focus and resource you intend to commit to this project.

If this is a project that you'll focus on solely for the next few years, then programming it yourself makes best sense, but if this is just one of many projects that you're busy with then I'd recommend trying something like Magento.

I was faced with a similar situation and chose Magento and that decision has been ratified many times over since then. Granted, there is a learning curve at the beginning, but you cannot compare the power of community developed projects against one you'll develop sporadically yourself. There have been a constant stream of improvements to the software, including iPhone-friendly shopping interfaces and ajax interaction, all stuff that I just would not have had time to get to.

Anyway, that's just my 30c worth.

Regarding which language to use if coding yourself, I think this is a purely personal decision and our responses can only be subjective.

But, since, you ask: I started web programming with ASP, but gave PHP a try over 7 years ago and have loved every minute of it.

Justin Lawrence