Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

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.

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.

MVC is pretty nice, we have been using it since first CTP. But there are performance issues if you just blindly follow MVC blogs/tutorials.

Take a look at this

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.

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!

(https://msdn.microsoft.com/en-us/library/dd381412(v=vs.98).aspx)

When to Create an MVC Application

You must consider carefully whether to implement a Web application by using either the ASP.NET MVC framework or the ASP.NET Web Forms model. The MVC framework does not replace the Web Forms model; you can use either framework for Web applications. (If you have existing Web Forms-based applications, these continue to work exactly as they always have.) Before you decide to use the MVC framework or the Web Forms model for a specific Web site, weigh the advantages of each approach.

Advantages of an MVC-Based Web Application

The ASP.NET MVC framework offers the following advantages:

  • It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.
  • It does not use view state or server-based forms. This makes the MVC framework ideal for developers who want full control over the behavior of an application.
  • It uses a Front Controller pattern that processes Web application
    requests through a single controller. This enables you to design an
    application that supports a rich routing infrastructure. For more
    information, see Front Controller.
  • It provides better support for test-driven development (TDD).
  • It works well for Web applications that are supported by large teams of developers and for Web designers who need a high degree of control over the application behavior.

Advantages of a Web Forms-Based Web Application

The Web Forms-based framework offers the following advantages:

  • It supports an event model that preserves state over HTTP, which benefits line-of-business Web application development. The Web Forms-based application provides dozens of events that are supported in hundreds of server controls.
  • It uses a Page Controller pattern that adds functionality to individual pages. For more information, see Page Controller.
  • It uses view state on server-based forms, which can make managing state information easier.
  • It works well for small teams of Web developers and designers who want to take advantage of the large number of components available for rapid application development.
  • In general, it is less complex for application development, because the components (the Page class, controls, and so on) are tightly integrated and usually require less code than the MVC model.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top