ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

ASP.NET Web Forms, basado en armar todo por componentes  ASP.NET MVC - basado en construir todo el renderizado tu mismo

Últimamente los debates de C# o VB.Net quedaron atrás, ahora los nuevos debates dentro del mundillo .Net están entre usar ASP.NET Web Forms o ASP.NET MVC. Imaginen la desorientación sobre el tema, que hasta se dedico una sesión del MIX 2009 a tratar sobre este tema: Choosing between ASP.NET Web Forms and MVC. En los inicios de ASP.NET su principal objetivo era ganar terreno a PHP, JSP, y las otras tecnologías existentes, vendiendo que hacer aplicaciones Web era como hacer aplicaciones Windows, aunque haya un trabajo extra por detrás. Con los años de este Framework el uso de la comunidad ha hecho los Web Forms evolucionen, esfuerzos como reducir el tamaño del ViewState, los CSS Adapters, los Starter Kits, las buenas prácticas, entre otras, han ido mejorando el Framework. De hecho no creo que de Microsoft escuchemos no usen Web Forms, ahora usen ASP.NET MVC, por que por parte de ellos y de la comunidad hubo un gran esfuerzo, y mucho cariño, por hacer que los Web Forms, sean un buen Framework de desarrollo Web.

Antes de empezar quisiera usar y resaltar esta línea de un post de ScottGu relacionado con esta discusión, About Technical Debates (and ASP.NET Web Forms and ASP.NET MVC debates in particular):

“Great developers using bad tools/frameworks can make great apps. Bad developers using great tools/frameworks can make bad apps.”

Al citar esta cifra, creo que deben tener un idea de cual es mi punto de vista. Ahora dividamos el problema, vamos a establecer dos grupos de usuarios para dar nuestros comentarios:

  • Grupo de usuarios experimentados de ASP.NET, que tienen varios proyectos en producción y que no han tenido problemas de rendimiento, tiempo de respuesta, etc, cuando han desarrollado proyectos usando WebForms.
  • Grupo de usuarios nuevos de ASP.NET (y en general nuevos en el desarrollo Web), cuyo primero contacto fue hacer proyectos Web usando ASP.NET, y que no han tenido buenos resultados, han tenido problemas de rendimiento, de tiempo de respuesta, de diseño, y todos los que encontramos en los foros.

Usando el mismo patrón que recomendó Jorge Serrano en este artículo, C# o VB, VB o C#,... la envidia me corroe, si eres un usuario experimentando, no necesitas recomendaciones, sólo revisar las características de ASP.NET MVC y ver si alguna de ellas es la estabas buscando: ASP.NET MVC Overview. Cerramos el tema con ellos, y nos dedicamos a los usuarios nuevos en el desarrollo Web y que van a empezar con ASP.NET.

El problema para los nuevos usuarios, y para los que toman como cierto el mensaje: “Desarrolla Aplicaciones Web como si lo hicieras con Windows Forms, sólo arrastras controles y ya tienes tu Aplicación Web”. Y lo toman literalmente, no necesitan aprender la diferencia entre POST Y GET, no hay porque aprender el significado de QueryString, no es necesario saber si es malo guardar un DataSet en el ViewState de la página, sólo la hago para ya no consultar la base de datos y no tener lenta mi aplicación, no se preocupan en aprender HTML, no se preocupan en aprender JavaScript, entre todas las otras que suelen dejarse de aprender.

Entonces si eres un usuario nuevo en ASP.NET (y si no eres nuevo y no sabes que que usa POST o GET), la recomendación básica es aprender los fundamentos del desarrollo Web:

Estos son WebCasts impartidos por el amigo Jonas Stawski. Es más si pueden traten de hacer pequeñas Web simples usando sólo ASP clásico, verán los resultados y la diferencia cuando después aprendan ASP.NET.

Si ya aprendieron los fundamentos, la elección será más fácil. Por otro lado, tampoco es que ASP.NET MVC cambie totalmente la forma de hacer aplicaciones Web Forms, hay muchas funcionalidades que comparten en un común, la diferencia principal esta en como presentar el fron-ed al usuario, no vamos a entrar en detalles muy técnico por que quizás si fuerzas a cualquier de los dos frameworks puedes lograr la funcionalidad del otro, pero vamos mostrar el siguiente gráfico para mostrar algunas diferencias, y como podemos elegir en que escenario usar uno u otro:

Fuente del gráfico, y otro más detallado.

Como recomendación final, podríamos establecer la siguiente línea para aprender correctamente cualquier de las tecnologías y no caer en las malas practicas:

  • Aprender Html
  • Aprender JavaScript
  • Aprender ASP Clásico
  • Aprender ASP.NET MVC
  • Aprender ASP.NET Web Forms

Aprender al final ASP.Net Web Forms, nos ayudará a entender porque algunas opiniones dicen no usar Web Forms, principalmente por el mágico ViewState que hace que los WebForms sean Stateful, por el contrario de toda la Web que es Stateless.

Otros artículos con algunos detalles de este versus, unos más técnicos que otros:

Saludos,

Published 26/3/2010 14:47 por Sergio Tarrillo
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2010/03/26/171454.aspx

Comentarios

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

Este post  deja mas dudas que antes, es muy poco aclaratorio, por lo menos yo no dejaria de usar web form por un rato

Sunday, March 28, 2010 4:21 AM por Isidro

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

Hola @Isidro, una aclaraciones adicional:

1. No pretendemos (opinión del autor del blog) que se deje de usar ASP.NET Web Forms, y sólo se use ASP.NET MVC. Y esto debido a que entedemos el gran ezfuerzo que muchos tienen con ASP.NET Web Forms.

Y el usar uno u otro, va depender de cada escenario personal. Por lo que comentas veo que ya vienes usando Web Forms, te recomendaría que lo sigas usando, pero que prestes atención en temas como el uso adecuado del ViewState, y que tengas un desarrollo en capas. Paralelamente puedes ir revisando las funcionalidades y marco de trabajo de como hacer una aplicación usando ASP.NET MVC. Espero que estos últimos comentarios aclaren un poco más el tema.

Saludos,

Monday, March 29, 2010 1:58 AM por Sergio Tarrillo

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

¡Que verdad tan grande! ... "ahora los nuevos debates dentro del mundillo .Net están entre usar ASP.NET Web Forms o ASP.NET MVC"

Creo que Microsoft esta obligado a ofrecer a sus desarrolladores MVC, pero los desarrolladores no estamos obligados a utilizarlo ... La decision es nuestra y siempre que lo hagamos bien ambas tecnologias funcionan perfectamente.

Ahi está: tienes la herramienta, ¡si te resulta de utilidad usala! y si no recuerda que la tienes, puede que en un futuro te venga bien.

Tuesday, March 30, 2010 12:56 AM por Pedro

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

Excelente material, felicidades...

Tuesday, April 13, 2010 3:53 AM por williams rodriguez constantino

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

Para los que nos gusta un mayor contacto y control con el html, sumando la potencialidad de javascript + jquery + json es una linda opción.

Tuesday, April 13, 2010 3:16 PM por kilisoria

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

cuando veo los codigos que debemos de escribir en la vista, la utilizacion muy recurrente de los tags <% %>, me siento otra vez en el pasado, en el codigo espaguetis, siento que estoy volviendo al viejo ASP clasico 3.0, solo que un poco mas estructurado... pues no gracias, me quedo con mis webforms, todavia me siguen simplificando la vida, saludos

Wednesday, June 15, 2011 3:41 PM por erick

# re: ASP.NET WebForms vs ASP.NET MVC, la nueva batalla

Hola..

Estoy iniciando en la programación asp y trate de bajar los podcast que mencionas, sin embargo los lenlaces no me permiten el acceso, hay algún lugar donde los pueda obtener??

Saludos

Thursday, June 30, 2011 5:32 PM por p@co