Siempre pensé que ASP.NET MVC Framework era una mala reputación ya que es un Patrón de diseño.
La pregunta debería ser:
Cuándo se debe utilizar ASP.NET MVC Framework sobre formularios Web ASP.NET?
El desarrollador Experiencia
a) Formularios Web ASP.NET intenta abstraer la naturaleza sin estado de HTTP desde el desarrollador. El estado de los elementos de GUI y/o los datos se almacenan en Viewstate/Session. Everyone Form hace una devolución de datos a sí mismo, básicamente imitando el comportamiento de un diseño impulsado por eventos de WinForm.
b) Los elementos de la GUI HTML son extraídos por Controles que pueden ser reutilizados y comprados a proveedores de terceros. Esto ayuda a los desarrolladores a pegar una aplicación HTML juntos sin tener mucho conocimiento de JavaScript y HTML/HTTP. Básicamente similar a la forma en que desarrollaría VB/WinForms
c) Puede hacer un buen trabajo implementando el patrón MVC/MVP en formularios web ASP.NET. Mire la fábrica de software Web Client de Patterns and Practices para ver cómo lo hicieron.
d) Desarrollando usando WebForms generalmente está cambiando el HTML (Vista) basado en los comentarios de los usuarios en el servidor. La mayoría de los eventos (el usuario hace clic en un botón, edita un campo) se manejan en el servidor en un ciclo de devolución de datos continuo ejecutando lo que se llama ASP.NET Page Lifecycle.
VS
vista
navegador controlado (no sé qué otra cosa lo llaman). Todos los cambios al HTML basados en la entrada del usuario se manejan en el navegador. Estarás manipulando el DOM con Javascript.
Nota: Me basando esta en el hecho de que ASP.NET MVC es más probable impulsado por el HTML básico + Ajax
Cómo yo elegiría personalmente entre ellos (sin haber usado MVC, sólo leer sobre él)
1) Si tuviera que construir una interfaz frontal sin estado puro usando Ajax, Jquery, las bibliotecas de tipos EXT JS ASP.NET MVC parecerían ser las más adecuadas. Aunque podría compilarlo en Webforms de ASP.NET, parece inútil ya que no aprovecha el modelo de Postback y los controles de servidor.
2) Si me pidieran que construyera una nueva aplicación web básica, me quedaría con las Webforms de ASP.NET porque ya estoy familiarizado con ella y conozco toda la página lifecylce.
3) Si me pidieran que construyera un Web 2.0 (odio ese término) para tener una experiencia de usuario de próxima generación, probablemente iría con ASP.NET MVC y usaría controles de cliente JQuery/ASP.NET Ajax.
4) Muchas compañías han creado un conjunto sólido de controles de WebForm para usar. Sería costoso reconstruirlos todos de una manera ajaxy sin estado puro :)
Esta pregunta parece ser fuera de tema, ya que no está dentro de los límites de la discusión como se describe en el centro de ayuda. – Will