ASP.NET MVC 3: Comentarios de Servidor con Razor

Esta semana hemos publicado ASP.NET MVC 3 Release Candidate. Soporta desarrollos "go live", e incluye un montón de mejoras añadidas a las que se introdujeron con ASP.NET MVC 3 Beta y la primera preview.

Este es el siguiente de una serie de mini-posts sobre las nuevas características de ASP.NET MVC 3 Beta/Rc en más detalle:

En el post de hoy veremos una pequeña característica que hemos añadido: Comentarios del lado del servidor con Razor.

¿Porque comentarios de servidor?

Escenario: Estamos trabajando con una plantilla de vista, y queremos deshabilitar temporalmente algún contenido o código (normalmente para encontrar algún problema, o para cambiar temporalmente la salida de nuestro sitio).

HTML soporta comentarios de cliente (<!---->), que podemos usar para hacer que el navegador no muestre el contenido. El problema de usar esta aproximación en algunos escenarios es que el contenido que encierra el comentario sigue enviándose del servidor al cliente - y el código del servidor dentro del comentario seguirá ejecutandose en el servidor.

ASP.NET Web Forms soportan una sintaxis de comentarios de servidor (<%-- --%>) que podemos usar para deshabilitar el contenido/código/controles de una página. Con los comentarios del lado del servidor, el compilador de ASP.NET Web Forms ignorará completamente cualquier bloque <%-- --%> cuando lo parsee, y eliminará el ontenido completamente ensamblando la página (como si el contenido nunca hubiese estado ahí). Podéis aprender más sobre esta características en un post anterior aquí.

Una pregunta que alguien me ha hecho esta semana era "¿existe algo equivalente en Razor?". La respuesta es - ¡Si!

Comentarios de servidor con Razor

Razor nos permite "cubrir" código/contenido/regiones de una vista con la sintaxis @* comentario*@ (que funciona tanto en plantillas C# y VB). Esta sintaxis indica que el Parser Razor ignorará todo lo que haya dentro de esos bloques y los tratará como si no existiesen (es decir, nada será ejecutado, no hay penalizaciones de rendimiento, y no se envía nada al cliente).

Por ejemplo, aquí he encerrado algún contenido HTML en el código de servidor en un bloque @* *@. Esto es equivalente a no haberlo puesto:

Fijáos cómo Visual Studio (a partir de ASP.NET MVC 3) colorea los comentarios (por defecto en verde) para hacerlos más visibles en el editor.

Visual Studio nos permite usar los botones de comentar/descomentar en la barra de herramienta de edición de texto para comantar/descomentar un bloque de texto/código. Por ejemplo, podemos seleccionar el siguiente código @* *@ en el editor de texto, y hacer clic en el botón "Descomentar" de la barra de herramientas (o mejor aún presionando Ctrl+K, Ctrl+U) para hacer que VS descomente la región:

Cuando hacemos esto el editor descomentará automáticamente el bloque por nosotros:

Ahora podemos destacar otra región de código en el editor, y hacemos clic en el botón de comentar para aplicar un comentario de servidor:

cuando hacemos esto, el editor comenta el bloque por nosotros:

Resumen

Los comentarios de servidor es una pequeña pero gran característica que pueden ayudarnos en un montón de circunstancias. Razor ahora soporta comentarios de servidor en ejecución, y Visual Studio ofrece soporte para ellos en tiempo de desarrollo.

Espero que sirva.

Scott

Traducido por: Juan María Laó Ramos.

Artículo original.