miércoles, 24 de octubre de 2007

simplemente no me gustan los usarControl de .NET??

bueno dice el titulo de la entrada. es verdad, no me gustan los usercontrol de .NET. tratare de detallar el por que no me gustan:
  • Una de las principales desventajas que to le veo personalmente, es que uno nunca sabe que se cuando no donde. yo ya llevo un tiempo trabajando con user-control y efectivamente, cuando estoy desarrollando no me doy cuanta cuando efectivamente va al servidor. cuando va solo una parte de una pagina o toda la pagina completa.
  • Cada vez que uso un asp:button al hacer click sobre el hace un submit del formulario automaticamente. y caemos en el juego del item anterior.
  • Creo que no es muy buena la integración con diseño. si bien los usercontrol la mayoria por no decir todos, acepta asignarle una clase css. este no es muy claro para un diseñador. ya que por ejemplo, por lo general diseñan con divs y no con tablas. aqui dejo un link http://www.effectivetranslations.com/stupidtables/everything_es.html.
  • cada ves que generamos un control este al lado del cliente genera un id aliatorio (si saben como arreglar esto por favor diganme), esto nos complica al lado de hacer cosas y validaciones javascript, ademas de definir reglas css. ya que en css podemos hacer clases, psedo-clases y etiquetas. seria bueno comentar que en css si no pone algo asi.

    #idElement{
    /*aqui deberia ir el estilo*/
    }
  • no me siento bien haciendo javascript, para cosas que tienen que ver con usercontrol. a mi me da la impresión de que estoy parchando el codigo. y amoldandome al código que genera .NET y sus usercontrol.
  • No se como extender un userControl, por ejemplo un dataGrid. a pesar de que este es solo un cuento mio. de todas formas igual lo agrego.
  • definitivamente prefiero usar un motor de plantilla. aunque sea pre-historico, jejeje.
Ventajas de usar motor de plantillas:
  • Nos permite solo dejar solo la lógica necesaria en la capa del cliente.
  • Mejor integración con diseño, ya que siempre diseño construye html y no asp:dataDrig
  • Sigue siendo html, con ciertos tags de repetición. los cueles pueden ser entendidos por casi cualquier persona, que quiera cambiar un color o un orden en cualquier cosa.
  • por lo general. (string Template lo hace) permite plantillas anidar platillas. de esta forma podemos tener un layout general , y solo hacer un plantillas mas chichas para las parte de información.

aqui les dejo el link de StringTemplate, para que lo miren es bastante bueno. http://www.stringtemplate.org/


bueno como conclusión. no me siento comodo haciendo user-control. creo que haciendo html+javascript+css puedes hacer muchas cosas mas que con user-control+css(limitado)+javascript(limitado), por que digo limitado, en css. uno siempre se tiene que preocupar por el navegador del cliente, eso ya es una limitancia para desarrollar css. y mas un si ponermos otro filtros mas que son los usercontrol. para javascript se repite lo mismo.

2 comentarios:

  1. Buen articulo... como princiante a desarrollos en entornos web (Hasta ahora solo hacia sistemas de escritorio)... tuve problemas por realizar mi sitio 100% con controles web, pero al realizar validaciones simples, me dio problemas por el tema de velocidad y compatibilidad.... mi voto va por los controls htmt + css + javasript...

    ResponderEliminar
  2. A mi tampoco me gustan mucho, aunque debo reconocer que simplifican bastante la tarea de uno. Muchas veces me encontré en la situación en donde necesito una grilla con alguna funcionalidad personalizada, pero es mucho trabajo extender un DataGrid o un GridView. Por lo general en esos casos creo un control personalizado y escribo el código de renderizado por mi mismo. Eso deja un código muy limpio (bah, si lo que escribimos es limpio) y obviamente, totalmente personalizable si es lo que queremos. Otra opción a la que recurro mucho son los DataRepeater, que me permiten crear una grilla con el contenido totalmente personalizado (lo uso cuando hay que retocar las tablas para que usen jquery).

    ResponderEliminar