ASP.NET MVC es para desarrolladores que desean desacoplar el código del cliente del código del servidor. He querido escribir JavaScript, XHTML, CSS clientes que pueden pasar de un servidor a otro (sin importar la tecnología del servidor). A los clientes les lleva mucho tiempo ajustarlos y terminarlos, así que querrá usarlos (y los subcomponentes) para tantos servidores como sea posible. Además, este desacoplamiento le permite a su servidor soportar cualquier tecnología de cliente que soporte HTTP y corchetes angulares (y/o JSON) como WPF/Silverlight. Sin ASP.NET MVC te forzaron a tener una relación hostil con todo el equipo de ASP.NET --- pero Scott Guthrie es un tipo genial y trae MVC a la mesa después de años de sus predecesores (y tal vez el propio Scott) casi totalmente enfocado en hacer que los programadores de Windows Forms escriban aplicaciones web.
Antes de ASP.NET MVC, construí aplicaciones ASP.NET basadas principalmente en archivos ASHX --- controladores HTTP. Puedo asegurarle que ninguna tienda de Microsoft "real" fomentaría este comportamiento. Es más fácil desde una perspectiva de administración (sabia) dictar que todos sus desarrolladores utilicen la forma recomendada por el vendedor de utilizar las herramientas del proveedor. Entonces, las tiendas de TI que tienen uno o dos años de retraso requerirán que conozcas la forma de hacer las cosas antes de MVC. Esto también es útil cuando tienes un sistema "heredado" para mantener.
Pero, para el campo verde, ¡es MVC todo el camino!
Ver también http://stackoverflow.com/questions/102558/biggest-advantage-to-using-asp-net-mvc-vs-web-forms?lq=1 – nawfal