Hi, I am pretty close to be done with a website using the entity framework and standard asp.net+ajax, but now I am thinking if it would be smarter to start over and do it with microsoft mvc. Is MVC going to be THE new thing, and should I try to implement it? How does MVC perform on high traffic sites?
Well, StackOverflow uses ASP.NET MVC and it is a fairly high traffic site. I've never experienced any slowdowns with SO. So, I don't think there are any major inherent performance limitations of ASP.NET MVC.
I don't see the point in reimplementing if you are almost done. Why not store it up for your next website and try it then? Also Stack Overflow is implemented using ASP.Net MVC - performance is incredible and they get a lot of traffic.
Personally I would recommend using MVC as it is more intuiative and you have more control over your pages than with web forms.
I wouldn't recommend starting again with MVC if you are new to MVC as the learning curve might be a little steep!
If the website you're talking about is public one that you intend to release on the world, then I would suggest you finish what you're doing, ship it, and get user feedback on the site before you decide to throw it away and reimplement it. If this is just a hobby site then throwing it away is fine.
However, there's no doubt in my mind that ASP.NET MVC is the better option and you should use it as the default option for all future development.
As mentioned in other responses, SO is using ASP.NET MVC.
I don't think ASP.NET MVC is going to get in the way of hitting your scale requirements - in any commercial website it's generally the data source (your SQL database, or the webserivices that you call) which will limit your ability to deal with high traffic.
I guess it really depends upon your usage patterns, how much data you're accessing to build pages, whether your content will be cachable, whether you have millions of users just reading pages, or hundreds of users who are updating data and things like thisthat will drive your ability to scale, and most of these are orthoganal to the framework you use to render the pages.
Do not re-engineer something you already finished developing or you are ready to launch for a new technology. Rather complete the project and use the new technology in a revision or a completely new site. The only time this type of re-factoring should be considered is when the business requirement has changed and the new requirement needs the new features.
Mvc is an extremely powerful and stable platform, however it is a choice for developers. Business requirements will define the type of solution to use. It is a case of the right tool for the right job.
Practical example, I recently had to make the choice, but due to lack of maintenance support skills once the project is completed, and creating a dependancy on a single resource for this purpose, business turned down the option of using Mvc.
If you have already done lot of your UI layer jus stick with web forms otherways if you have the time to learn a new technology MVC won't disappoint you
As most have said, if you're almost done with your current site, continue as you are.
For your next project, I highly recommend you sit down and learn MVC. Once you make the switch, the different layers will become very clear, distinct, and as a result more succinct (hopefully).
As a result, if you need to go back and work on previous sites, you might decide to re implement them in MVC if it's not too difficult. The complete control you have over what's happening in your code is great. And if you don't like using VB or C#, you could even branch out and use IronRuby and IronPython as well and pick up some new languages along the way. Not to mention MVC is fully extensible and (now) open source. If you want to see pros and cons, check out this question.
Another option is to do a section of your site in WebForms and another in MVC. There is nothing to my knowledge that would prevent you from doing this.
Evaluate the reason you're thinking of redoing all your hard work and you'll get your answer.
Is the site a project done for your own learning purposes? If so, then redoing the site in MVC is an option, as long as you're willing to throw out a lot of the work you've done already.
Is the site being done at a cost to someone? If so, you should definitely not redo the site in MVC at this stage as you will be setting the project back unnecessarily.
Remember, when financials are involved, backtracking and redoing things that have already been done, simply to give you the opportunity to work with a technology you like better, had better be accompanied by a reasonable business case for doing so. The customer isn't going to care in most cases what technology you use, they're going to care how long it takes to do it and how much they are going to have to spend. Hence, your decision should be based on their needs, not yours.
I've said it before and I'll say it again. :) I recently recreated an almost finished project as mvc instead of asp.net. It took me a week extra to get ready but the customer was very pleased with how nice it turned out!