Autor en Google+
Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET, ASP.NET Core, MVC, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

10 años online 🎂

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET, ASP.NET Core, MVC, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
lunes, 25 de octubre de 2010
ASP.NET MVC Los helpers son un mecanismo muy habitual para evitar el efecto “tag soup”, es decir, la mezcla de etiquetas HTML y bloques de código de servidor, en el interior de una vista. Sin dudarlo, cuando la legibilidad del código de la vista peligre o rompamos el principio DRY, estas pequeñas (y a veces no tan pequeñas) funciones nos permitirán aislar la lógica de presentación y simplificar las vistas.

Observad, por ejemplo, el siguiente código, en el que existe una lógica duplicada, y un gran número de aperturas y cierres de bloques que dificultan su lectura, y facilitan la introducción de errores:

Algo de sopa de etiquetas

Esto podría simplificarse un poco creando un helper como el siguiente:

 Código del helper

De esta forma, la vista quedaría como sigue; hemos ganado bastante en legibilidad y simplicidad de la misma respecto a la primera versión:

Código de la vista simplificado

Sin embargo, cuando andamos embarcados en un proyecto relativamente extenso, enseguida notaremos que los helpers empiezan a multiplicarse. En casi cualquier vista medianamente compleja  utilizaremos uno o más helpers, a veces difícilmente reutilizables entre ellas, y esto hace que al final tengamos que mantener una amplia colección de métodos extensores que en la práctica sólo utilizamos una vez.

En estos escenarios es donde suelo utilizar helpers locales, funciones incluidas en el mismo archivo .aspx, en el interior del tag <script runat="server">, como en los viejos tiempos:

Código de la vista con helpers locales

De esta forma podemos beneficiarnos de las siguientes ventajas:
  • La lógica de presentación se introduce junto a la propia presentación, es decir, en el mismo archivo de código desde la cual se utiliza, lo que simplifica su localización y mantenimiento posterior.
  • Al tratarse de código incluido en una vista, se pueden realizar cambios directamente sobre ella, sin necesidad de recompilar el proyecto.
  • De la misma forma, el hecho de encontrarse en ella hace que podamos acceder de forma directa a los parámetros enviados desde el controlador, utilizando la propiedad Model de la vista.
  • No perdemos las ventajas de intellisense u otras ayudas del editor.
Obviamente esta técnica sólo tiene sentido utilizarla cuando se trata de funciones de utilidad exclusiva en la vista donde se definen; si lo que queremos es reutilizar, sin duda los helpers tradicionales son una fórmula mucho más apropiada.

Publicado en: Variable not found.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

3 Comentarios:

Rober dijo...

hola hose.

solo una pregunta, que ocurre con los que ya estan usando o pensamos usar razor para las vistas? ¿perdemos esta posibilidad?

gracias y felicidades por el blog.

José M. Aguilar dijo...

Hola!

Te respondo en un post, ok?

Saludos & gracias por comentar.

Lupiss dijo...

Hola... voy a intentarlo y te cuento com me fue... Gracias por el aporte