asp.net-mvc architecture webforms comparison performance

ASP.NET MVC vs WebForms: comparación de velocidad y arquitectura



asp.net-mvc architecture (4)

Tuve una discusión con uno de mis amigos que es arquitecto en una empresa de Internet bastante grande. Básicamente, decía que ASP.NET MVC no es para aplicaciones empresariales a gran escala, que no es tan flexible como los formularios web, y que una aplicación MVC será más lenta que una aplicación de formularios web.

Por mi propia experiencia al trabajar con MVC, puedo decir que es más flexible y más liviano porque no hay ciclo de vida de la página, estado de visualización, etc. Por lo tanto, debería cargarse más rápido al menos. Que yo sepa, MVC está diseñado para tráfico de mediana a gran escala.

¿Qué piensan ustedes? ¿Alguien ha comparado la velocidad y el rendimiento? ¿Y es ASP.NET MVC mejor para aplicaciones a gran escala que ASP.NET WebForms?

En resumen, entre estas dos opciones, ¿cuál elegiría utilizar para una aplicación empresarial a gran escala?


Creo que MVC es un marco más ligero y con más rendimiento porque no hace muchas de las cosas que el marco de WebForms hace de forma inmediata, como viewstate, por ejemplo. No creo que sea justo decir que MVC no es para aplicaciones de mayor escala, ya que probablemente se adapte mejor que WebForms en términos de rendimiento. En términos de características listas para usar, WebForms hace más por usted porque maneja el estado entre las publicaciones por usted, a través de viewstate, etc.

No tengo ningún enlace a las comparaciones de rendimiento conmigo, pero me sorprendería mucho si no hubiera ninguno. Incluso Microsoft probablemente tiene algunos.


Este sitio es un mejor ejemplo del rendimiento y escalado de ASP.net MVC.

Algunas características que creo que son necesarias para Enterprise y que proporciona MVC son

  1. Pruebas unitarias : aunque lleva tiempo implementar esto inicialmente, ahorra mucho tiempo en el futuro.

  2. Separación de preocupaciones : esto realmente mejora la velocidad de desarrollo y modificación

  3. Rendimiento : dado que tanto MVC como Webforms usan el mismo ASP.net que el marco central y MVC es más ligero y compatible con HTTP, le brinda un mejor rendimiento


La programación groupthink y cargocult es fuerte en este hilo. Su amigo arquitecto tiene razón (probablemente por razones equivocadas) e incorrecto al mismo tiempo.

que no es tan flexible como WebForms

Esto es simplemente tonto. Puedes hacer cualquier cosa con cualquier cosa. Ambos son increíblemente flexibles. En términos de flexibilidad, MVC es probablemente el claro ganador aquí, ya que puede lograr fácilmente la Programación Orientada a Aspectos (AOP) utilizando ActionFilters. Otra razón por la cual MVC es probablemente el ganador aquí es que se piensa en la inyección de dependencia en MVC. Puede tener inversión de control e inyección de dependencia en WebForms pero requiere implementaciones complejas que involucren el patrón Model-View-Presenter.

La aplicación MVC será más lenta que una aplicación de formularios web.

Esto no es válido para reclamar, como está escrito. Cualquier aplicación puede escribirse más lento comparativamente, ya que es un proceso complejo que involucra muchos aspectos para alcanzar un producto final. Sin embargo, en términos de velocidad bruta. Los formularios web son sustancialmente más rápidos . https://.com/a/20253243/37055

es más liviano porque no hay ciclo de vida de la página, estado de visualización, etc. Por lo tanto, debería cargarse más rápido por lo menos

Esta es también una declaración no válida para hacer. El ciclo de vida de la página es irrelevante en todos los aspectos porque hay ciclos de vida corolarios en MVC con respecto a los controladores y los filtros de acción. El estado de vista es interesante ... si elige rellenar 100s y 1000s de kilobytes de datos en el estado de vista que requiere que cada devolución al servidor tenga una solicitud de 1MB-5MB, sí, obviamente será más rápido hacer casi cualquier cosa diferente. Esto no es culpa de los formularios web, sin embargo, los formularios web le permiten caer en el foso de la falla muy fácilmente con viewstate.

¿ASP.NET MVC es mejor para aplicaciones a gran escala que ASP.NET WebForms?

No. Sin embargo, la respuesta a esta pregunta "es ASP.NET WebForms para aplicaciones a gran escala que ASP.NET WebForms?" La respuesta también es No. La respuesta es no, porque la respuesta siempre depende . Cada marco tiene sus pros / contras y usted necesita medirlos, no hay respuestas definitivas.

Si está creando un sitio basado en contenido, el trabajo es tener los tiempos de carga de página más rápidos posibles, como www.microsoft.com , por lo que es muy posible que elija los formularios web.

¿Cuál elegirías utilizar para una aplicación empresarial a gran escala?

En primer lugar, es muy probable que no tenga este problema. No estaría en posición de hacer esta pregunta si fuera realmente responsable de diseñar una aplicación empresarial a gran escala. (o el proceso de contratación no requería experiencia de desarrollo a gran escala).

En términos de una aplicación a gran escala, el marco que elija no tiene ningún significado. Las aplicaciones a gran escala están basadas en colas. Aprovecharán herramientas como MSMQ ya sea directamente oa través de un servicio como Mass Transit, Azure Service Bus o NServiceBus. Solo con la cola puede llegar a la escala para manejar millones de solicitudes de la forma en que lo hacen Amazon, Ebay y todos los demás jugadores importantes.


  • Velocidad de desarrollo: WebForms
  • Velocidad de rendimiento: MVC
  • Facilidad de uso: WebForms (normalmente)
  • Pruebas unitarias: MVC (Típicamente)