ASP.NET MVC 3: Comentários (Server-Side) no Lado do Servidor com o Razor


No início desta semana nós lançamos a ASP.NET MVC 3 Candidata a Lançamento. Ela suporta instalações "go live" (no ambiente de produção), e inclui muitas melhorias/aperfeiçoamentos tendo como base os recursos que habilitamos anteriormente com os lançamentos da ASP.NET MVC 3 beta e primeira prévia/amostra.

Este é outro post em uma série de "mini-posts" que estou escrevendo que fala sobre alguns dos novos recursos da ASP.NET MVC 3 Beta/RC em mais detalhes:

No post de hoje eu vou discutir sobre um pequeno, mas útil, recurso que introduzimos recentemente: suporte a comentários server-side (no lado do servidor) com o Razor.

Por que Comentários no Lado do Servidor?

Cenário: Você está trabalhando dentro de um modelo de visão, e quer desabilitar temporariamente algum conteúdo ou código da visão (potencialmente para ajudar a rastrear um problema, ou para alterar temporariamente o código de saída do seu site).

O código HTML suporta comentários client-side (no lado do cliente) com <!-- -->, que você pode usar para impedir que o browser analise/execute/exiba o conteúdo HTML contido dentro de <!-- -->. O problema de usar essa abordagem em muitos cenários, é que o conteúdo contido dentro do comentário ainda é enviado do servidor para o cliente desnecessariamente - e o código do servidor dentro do comentário ainda será executado no servidor. 

A ASP.NET Web Forms (Formulários Web) suporta uma sintaxe de comentário no lado do servidor ( <%-- --%> )  que você pode usar para desativar completamente o conteúdo/código/controles dentro de uma página. Com os comentários no lado do servidor, o compilador da ASP.NET Web Forms ignora completamente tudo que estiver dentro dos blocos <%-- --%> no momento da análise, e remove o conteúdo completamente quando faz a montagem da página (como se o conteúdo não estivesse lá). Você pode aprender mais sobre esse recurso a partir de um post antigo que escrevi aqui.

Uma pergunta que alguém me fez no início desta semana foi "existe uma forma equivalente para fazer isso com o Razor?". A resposta é - sim!

Comentários no Lado do Servidor com o Razor

O Razor agora te permite envolver qualquer código/conteúdo/região de uma visão dentro de uma sintaxe @* comentário *@ (que funciona para modelos de visão C# e VB). Esta sintaxe indica que o analisador do Razor deve ignorar tudo dentro desse bloco tratando-o como se ele não estivesse presente (o que significa que nada será executado, não há sobrecarga de desempenho no tempo de execução, e nada é enviado para o cliente).

Por exemplo, a seguir eu envolvi algum conteúdo HTML e código do servidor dentro de um bloco @* *@. Isso é equivalente ao código não estar presente na página:

imagem

Observe acima como o Visual Studio (começando com o lançamento desta semana da ASP.NET MVC 3 RC) agora coloriza os comentários (por padrão na cor verde) para torná-los mais visíveis dentro do editor. 

O Visual Studio agora também permite que você use os botões de comment/uncomment (cometar/descomentar) na barra de ferramentas do editor de texto para facilmente comentar/descomentar um bloco de texto/código. Por exemplo, poderíamos selecionar o bloco de comentário acima @* *@ dentro do editor de texto e clicar no botão "Uncomment" da barra de ferramentas (ou melhor ainda pressionar Ctrl+K, Ctrl+U) para que o VS descomente a região:

imagem

Quando fazemos isso o editor automaticamente descomenta o bloco para nós (poupando-nos algumas teclas):

imagem

Poderíamos, então, destacar uma outra região de texto/código dentro do editor e, em seguida, clicar no botão "Comment" da barra de ferramentas ou pressionar Ctrl+K, Ctrl+C para aplicar um comentário no lado do servidor:

imagem

Quando fazemos isso o editor automaticamente comenta o bloco para nós (poupando-nos algumas teclas):

imagem

Resumo

Comentários no lado do servidor é um pequeno, mas útil, recurso que pode ser útil em uma variedade de circunstâncias. O Razor agora permite comentários no lado do servidor em tempo de execução, e o Visual Studio oferece um bom suporte ferramental para eles no tempo de desenvolvimento.

Espero que ajude,

Scott

PS Além do blog, eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links. Siga-me em: twitter.com/ScottGu

 

Texto traduzido do post original por Leniel Macaferi.

No Comments