Nuevo blog! Microsoft Dev Blog

Es para mi un gusto compartir con toda la comunidad el blog Microsoft Dev Blog que comenzamos recientemente con mi gran compañero y amigo @diegobersano. Hace ya un tiempo que venimos con la idea de armar este blog en conjunto, pero por distintos motivos y falta de tiempo se venia postergando.

Microsoft Dev Blog tiene como fin poder compartir los conocimientos y experiencias  que vamos adquiriendo en tecnologías .NET, en principio arrancaremos con Azure pero tenemos pensado ir escribiendo sobre Windows Phone y ASP.NET entre otras novedades tecnológicas.

Microsoft Dev Blog

Microsoft Dev Blog

Espero que les sea útil y desde ya estamos a disposición de todos!

Razor Helpers

Para aquellos que venimos trabajando desde el inicio con ASP.NET MVC recordaran que con la versión de MVC 3 aparecía Razor, el view engine que nos permitía armar vistas mas simples escribiendo menos caracteres 🙂

Hoy vamos a hablar de una característica de Razor que muchas veces se nos pasa por alto, pero que les puede resultar muy útil. Se trata de la sintaxis @helper que nos permite escribir métodos auxiliares re-utilizables en las vistas.

Trabajemos en un simple ejemplo para apreciar la utilidad de esta sintaxis. Supongamos que tenemos una lista que muestra información sobre personas y en una de las columnas es necesario mostrar su dirección postal. Para el caso en que no existiera esta información hay que mostrar la frase “No se cuenta con la dirección postal“.

Como ya se imaginan, esto requiere escribir una simple porción de lógica en la vista que muestre el texto que corresponda dada una condición determinada. Para esto vamos a crear un método auxiliar con la sintaxis @helper que vamos a llamar MostrarDireccionPostal:

Definiendo un Razor Helper

Definiendo un Razor Helper

Sencillo, no?… Seguramente se estarán preguntando cómo podemos hacer para reutilizar esté método en otras vistas de mi aplicación sin necesidad de re-escribir el @helper en cada una de estas vistas. Para esto simplemente debemos mover nuestro método a un archivo con extensión .cshtml o .vbhtml dentro del directorio “/App_Code” (en mi caso lo voy a llamar SebysHelpers.cshtml):

SebysHelpers Template

SebysHelpers Template

Tengan en cuenta que el template SebysHelpers.cshtml se compila bajo la clase SebysHelpers la cual me va a proveer del método estático MostrarDireccionPostal (dentro del template podemos poner cuantos métodos queramos). Hecho esto finalmente resta modificar la vista para invocar el método correspondiente:

Invocando al método dentro del template.

Invocando al método del template.

Como podemos ver el uso de la sintaxis @helper nos permite encapsular lógica del renderizado de las vistas en métodos auxiliares que podemos compartir entre deferentes vistas de una manera muy sencilla y generando código mas legible y mantenible.

Espero que les sea de mucha utilidad.

Abrazos!