I have seen this question many times and many different responses. I’d to share my point of view in the matter:

  1. Use MVC if you want to use a framework which actively forces you to separate the UI and the business code. Use ASP.Net if you and the entire team are strong enough to avoid mixing.
  2. Use MVC if your UI is going to be changed twice a year and the project is big.
  3. Use MVC if you want rich client functionality (like interactive HTML5+js charts).
  4. Use ASP.Net AJAX if you need powerful UI controls like grids and tree-views. At the moment (09/19/2012) the AJAX controls are by far much richer than MVC controls and the improvement speed is slow for MVC, so probably each kind of control sets will continue targeting different scenarios.
  5. Use Asp.Net AJAX if you’re in a rush. It’s ok building 10% of the product (maybe the backend) with out of the box functionalities (for example the Create-Insert-Delete-Update required for a small business concept).

General advices:

  • ASP.Net neither MVC guarantee you building robust and maintainable code. By using any of both it’s up to you building modular UI’s.
  • Use the best of both technologies. There is no golden hammer/silver bullet. So use them according to your need. In this sample there is a good reuse of a robust AJAX control from a MVC project. At the end of the day stateless nature of MVC is achievable by using Web Services as well. Here a good sample.
  • Don’t throw away your investment without a good reason (technology hype isn’t).

Cheers,

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer