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:
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:
Quando fazemos isso o editor automaticamente descomenta o bloco para nós (poupando-nos algumas teclas):
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:
Quando fazemos isso o editor automaticamente comenta o bloco para nós (poupando-nos algumas teclas):
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.