La impedancia de los WebForms

El otro día leí un estupendo artículo sobre la difícil mantenibilidad de los WebForms de ASP.NET. Realmente expone las frustraciones a las que nos enfrontamos muchos programadores que trabajamos con esta tecnología de Microsoft, especialmente los que venimos del mundo puramente web y raramente hemos trabajado en VB6 o WinForms.
Entre los motivos que se exponen son los siguientes:

  • Algunas cosas sencillas, patrones típicos de HTML/Javascript cuestan mucho o son casi imposibles
  • No hay ningún control sobre el HTML generado, dificultando especialmente la conciliación con el diseño original
  • Los controles reciben IDs tediosos de manejar desde Javascript, que además cambian si se cambia el control de contenedor
  • Los controles a veces no funcionan como deberían y hay que ir investigando porqué se comportan como lo hacen

Yo al final opto muchas veces por usar repeaters, simples y sencillos. Dibujan el HTML tal cual está previsto y así sale todo como está previsto, pero claro, luego vienen los problemas cuando hay que anidar unos dentro de otros: ni se me ocurre abrir el diseñador.

En esta línea, hoy han publicado una continuación hablando del modelo web, lo que conocemos de toda la vida:

  • HTTP
  • Cookies
  • (X)HTML
  • CSS
  • JavaScript

Una vez entendido es bastante sencillo. Tiene sus inconvenientes pero todo se deriva de la naturaleza del HTTP, donde cada llamada es completamente independiente de la anterior. Eso obligó a crear las cookies y desde el renacimiento del Javascript gracias a la explosión de AJAX conforman un conjunto bastante completo conocido por una infinidad de desarrolladores web alrededor del mundo.

Por lo tanto, para reducir las diferencias entre la programación Windows y la web, los programadores de Microsoft se inventaron:

  • Los postbacks
  • El ViewState
  • El ciclo de vida

Y así nacieron los WebForms. Decidieron reinventar la rueda para captar a los clásicos programadores de VB6 que empezaban en la web cuando apareció el .NET Framework y el Visual Studio .NET por allá por 2003. Pero a los que veníamos de ASP no nos ofrecieron en realidad una continuidad con el medio que conocemos y que por más que pase el tiempo no acabamos de comprender el nuevo modelo pensando que “antes era más sencillo”. No es lo que yo llamo progreso.

Un ejemplo reciente: me preguntaron porque si movían opciones de un ListBox a otro por Javascript y luego hacían un Request para recoger el valor de la lista en la acción, devolvía null. Pues simplemente porque ese tipo de controles meten su valor en el ViewState para “completar” la información que HTML por sí mismo no da. Así que la solución es copiar el valor en un campo oculto y luego recogerlo, teniendo que hacer manualmente lo que ASP.NET hace automáticamente solamente porque usando los eventos de .NET, cada movimiento entre listas obliga a recargar la página (no con AJAX, pero el problema es parecido). Y con razón me dicen que antes era más sencillo. No les puedo decir que no.

Así que tengo esperanza en los frameworks MVC. He probado MonoRail y los resultados han sido muy positivos: todo bien separado, diseño tal cual había sido concebido por los creativos, testeo de cada una de las partes, etc. Ahora va haciendo camino ASP.NET MVC (y en Codeplex con código fuente y ejemplos), que no es ni mejor ni peor pero probablemente sea más fácil convencer a las altas esferas si lleva el ADN de Microsoft y no el de Open Source (es lo que tiene el vendor lock-in). En cualquier caso, sea con uno o con otro, creo que es el camino a seguir para librarse definitivamente de los WebForms y volver a jugar en terreno conocido.

Via | Working with the web model [lostechies.com]

Si te ha gustado esta entrada, por favor deja un comentario o suscríbete al RSS para que puedas recibir todas las novedades en tu lector de feeds favorito.
This entry was posted in Programación and tagged , , , , , . Bookmark the permalink.

One Response to "La impedancia de los WebForms"

Leave a reply