01/11/2019 ASP .
NET - Apresentando a sintaxe Razor
ASP .NET - Apresentando a Sintaxe Razor para C# e VB .NET
Neste artigo vou apresentar a sintaxe usada pelo Razor, o view engine usado nas aplicações ASP .NET
MVC3 e no Web Matrix.
A idéia é mostrar os conceitos básicos usados para utilizar o Razor tanto na linguagem C# como na linguagem VB .NET.
Mas o que vem a ser esse tal de Razor ???
Razor é nome da nova View Engine das aplicações ASP .NET MVC e WebMatrix. (Veja as referências...)
De forma bem objetiva Razor foi criado para simplificar a codificação nas aplicações ASP .NET , pois usando a sintaxe do Razor o
código fica mais fácil de digitar, mais simples e legível. (Finalmente podermos abolir o uso das tags <%= %> no código)
O Razor é bastante 'esperto' e possui um parse que conhece as marcações HTML , a sintaxe da linguagem VB .NET (VBHTML) e C#
(CSHTML).
Fique atento que o Razor não é uma nova linguagem; você vai usar os seus conhecimentos d VB .NET ou C# para usar o Razor e
não o contrário.
Assim podemos enumeras o seguintes benefícios em usar o Razor:
• A sintaxe Razor é limpa e concisa, o que requer um número mínimo de digitação;
• O Razor é fácil de aprender, em parte porque ele é baseado em linguagens existentes, como C # e Visual Basic;
• O Visual Studio inclui o IntelliSense e colorização de código para a sintaxe Razor;
• As views Razor podem ser testadas de forma unitária sem exigir que você execute o aplicativo ou abra um servidor web;
Além disso o Razor possui os seguintes recursos:
• sintaxe do modelo de @ para especificar o tipo que está sendo passado para a exibição;
• @ * * @ sintaxe de comentário;
• A capacidade de especificar os padrões (como layoutpage) uma vez para um site inteiro;
• O método Html.Raw para exibição de texto sem codificação HTML;
• Apoio ao compartilhamento de código entre múltiplas visualizações (arquivos _viewstart.cshtml ou _viewstart.vbhtml);
E para mostrar que o danado chegou cheio de recursos o Razor também possui os seguintes Helpers:
• Chart - Processa um gráfico, oferecendo os mesmos recursos como o controle de gráfico no ASP.NET 4;
• WebGrid - Processa uma grade de dados, com funcionalidade de paginação e ordenação;
• Crypto - Utiliza algoritmos de hash para criar senhas devidamente criptografadas;
• WebImage - Processa uma imagem;
• WebMail - Envia uma mensagem de e-mail;
O Razor da suporte a linguagem C# e linguagem VB .NET; no primeiro caso a extensão dos arquivos será .cshtml, para o VB .NET a
extensão é .vbhtml.
A sintaxe Razor é baseada no ASP .NET que por sua vez baseia-se no .NET Framework.
www.macoratti.net/11/02/asp_rzr1.htm 1/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
Dessa forma a curva de aprendizagem é reduzida, e a sintaxe Razor ainda lhe dá todo o poder do ASP.NET, mas com uma sintaxe
simplificada e mais fácil de aprender se você é um novato ou lhe dar mais produtividade se você já tiver experiência.
Vejamos os pontos principais da sintaxe Razor:
Obs: Para os exemplos usados neste artigo eu estou usando WebMatrix. (Se não tiver pegue aqui: WebMatrix.)
1 - Para adicionar código em um página você utiliza o caractere @
O caractere @ inicia expressões inline, blocos de instrução única, e blocos com múltiplas instruções.
Obs: A sintaxe VB .NET utiliza a as @Code e End Code para indicar a abertura e o fechamento de um bloco de código.
Veja na figura 1 o exemplo usando a sintaxe C# e o resultado exibido na figura 2 ao lado:
figura 1 - Exemplo de código usando a sintaxe Razor (C#)
figura 2 - Resultado do processamento do código da figura 1
Todo o código que vai ser processado pelo servidor começa com o caractere @ (arroba) ele substitui com vantagens os caracteres
<% %> usados desde a versão do ASP.
Para o VB .NET o código acima ficaria assim:
www.macoratti.net/11/02/asp_rzr1.htm 2/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
Observe que na sintaxe VB .NET usamos @Code para indicar o início do bloco de código e End Code para indicar o final do bloco.
Note que usamos a palavra reservada Dim para declarar as variáveis no bloco de código ao invés de var.
Note também que tivemos que converter a variável diaDaSemana para String.(ToString());
Em resumo : O Razor simplifica a digitação pois apenas um caractere @ é usado para indicar ao parse do Razor que o código deve
ser processado, e você não precisa mais usar um caractere de controle dizendo que vai interromper o HTML e começar o código C#
ou VB .NET.
Em blocos de código do servidor, iniciados com o caractere @(C#) ou @Code(VB.NET), se você desejar exibir um texto, ou tag
HTML na página pode fazer o seguinte:
- Colocar o texto em um elemento HTML como um <p></p> ou <em></em> , dessa forma o parse sabe que este texto não deve
ser processado;
No código acima ao encontrar a tag <p> o parse sabe que o que vem a seguir não é código a ser processado.
Quando o parse encontra o trecho de código iniciado com caractere @ (@DateTime), ou @Code, ele sabe que este é um código de
servidor.
- Usar o operador @: (arroba e dois pontos) para enviar uma única linha de conteúdo contendo texto ou tags HTML únicas (</p>,
</br>, etc.) ou usar o elemento <text> para abranger várias linha de saída. Essas opções são úteis quando você não quer processar
um elemento HTML como parte da saída. Ex:
Se você quiser exibir várias linhas de saída de texto ou tags HTML tags únicas (</p>, </br>, etc.), você pode preceder cada linha
com @:, ou você pode colocar a linha em um elemento <text>. Como o @: operador, as tags <text> são usados pelo ASP.NET para
identificar o conteúdo de texto e nunca são processados na saída da página.
Espaços Extras
- Espaços extras em branco em uma declaração (e fora de uma string literal) não afetam a declaração.
Exemplo C# : @{ var nome = "Macoratti"; } Exemplo VB .NET: @Code Dim nome = "Macoratti" End
Code
- No entanto, você não pode quebrar uma linha no meio de uma seqüência literal. O exemplo a seguir não
funciona:
@{ var teste = "Este e uma string
muito longa"; } // Não funciona!
Em VB .NET você pode quebrar uma instrução de código longa em várias linhas usando o caractere sublinhado
_ (que no Visual Basic é chamado o caracter de continuação) depois de cada linha de código.
Para quebrar uma declaração para a próxima linha, no final da linha adicione um espaço e, em seguida, o
caractere de continuação e continue a instrução na linha seguinte. Você pode envolver declarações em
quantas linhas você precisa para melhorar a legibilidade. As declarações a seguir são os mesmos:
Exemplo VB .NET:
Comentários (para C# e VB .NET)
- Para realizar comentários usando a sintaxe Razor você deve iniciar o comentário com *@
www.macoratti.net/11/02/asp_rzr1.htm 3/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
e terminar com um @*
sendo que o comentário pode estar em uma ou várias linhas. Ex:
@* comentário com uma linha. *@
@*
Comentário com mais de uma linha.
Macoratti.net quase tudo sobre VB,
ASP .NET e C# ...
*@
Declaração de variáveis
Uma variável é um objeto nomeado que você usa para armazenar dados. O nome de uma variável deve começar com um caractere
alfabético e não pode conter caracteres em branco ou reservados
Para declarar um variável usando a sintaxe C# você usa a palavra chave var (se não quiser especificar o tipo) ou usar o nome do
tipo.:
Exemplo C#:
Para a linguagem VB .NET para declarar uma variável sem especificar um tipo, use a palavra Dim mais o nome da variável (por
exemplo, Dim nome). Para declarar uma variável com um tipo, use Dim mais o nome da variável seguido de As e em seguida o
nome do tipo (por exemplo, Dim nome As String).
Exemplo VB .NET:
2 - Blocos de código são colocados em chaves {} para o C# e @Code/End Code para o VB .NET
Um bloco de código inclui uma ou mais instruções de código e é colocado entre chaves({}) para o C# e @Code/End Code para o VB
.NET.
Exemplo C#:
www.macoratti.net/11/02/asp_rzr1.htm 4/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
O mesmo exemplo usando a sintaxe VB .NET ficaria assim:
Observe que na sintaxe VB .NET usamos @code para indicar o início do bloco de código e End Code para indicar o final do bloco.
3. Dentro de um bloco você termina cada instrução do código com um ponto e vírgula na sintaxe C# e com uma
quebra de linha na sintaxe VB .NET
Os exemplos acima mostram este comportamento para o C# e o VB .NET.
4. Usando variáveis para armazenar valores com var(C#) e Dim(VB.NET)
Você pode armazenar valores em uma variável, incluindo strings, números e datas, etc.
Você pode criar uma nova variável usando a palavra-chave var para o C# ou usando a palavra reservada Dim para o VB .NET.
E pode inserir valores de variáveis diretamente em uma página usando o caractere @.
Veja os exemplos acima mostrando esta característica.
5. Coloque os valores de seqüência de caracteres entre aspas duplas (" ")
Você coloca os valores de seqüência de caracteres literal entre aspas (Uma string é uma seqüência de caracteres que são tratados
como texto). Para especificar uma seqüência, você deve colocá-la entre aspas duplas. Exemplo:
C# VB .NET
@Code Dim minhaString = "Esta é uma string
@{ var minhaString = "Esta é uma string literal"; }
literal" End Code
6. O código C# é case sensitive já o código VB .NET não é case sensitive
Em C #, palavras-chave (como var, true, e if) e os nomes das variáveis são case sensitive. Assim na linguagem C#: nome e Nome
são variáveis distintas.
Para o VB .NET as variáveis nome e Nome são a mesma variável e também Dim e DIM , If ou if, TRUE ou True ou true reference
aos mesmos comandos.
7. Tomando decisões em seu código
Uma característica fundamental de páginas web dinâmicas é que você pode determinar o que fazer com base em condições. A
forma mais comum de fazer isso é com a instrução If (e Else opcional).
Exemplo C#:
www.macoratti.net/11/02/asp_rzr1.htm 5/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
A declaração If isPost é uma forma abreviada de escrita If isPost == True. Junto com If, há uma variedade de maneiras para
testar condições, blocos de repetição de código, e assim por diante...
Exemplo VB .NET:
A declaração If isPost é uma forma abreviada de escrita If isPost = True. Junto com If, há uma variedade de maneiras para testar
condições, blocos de repetição de código, e assim por diante...
E com isso procurei apresentar um resumo das principais características da sintaxe Razor para C# e para VB .NET. Para mais
detalhes que não foram abordados neste artigo consulte as referências da sintaxe para cada linguagem.
Lembrando que podemos usar o engine Razor em aplicações ASP .NET MVC e no WebMatrix.
Aguarde para os próximos dias o artigo apresentando o ASP .NET MVC 3 usando a sintaxe Razor no view Engine.
www.macoratti.net/11/02/asp_rzr1.htm 6/7
01/11/2019 ASP .NET - Apresentando a sintaxe Razor
Eu sei é apenas Razor , mas eu gosto...
Referências:
Seção ASP .NET do site
Padrões de Projeto - O modelo MVC - Model View Controller
ASP .NET - MVC - Introdução - Macoratti.net
Usando ASP .NET MVC Framework - Macoratti.net
Compreendendo Models, Views e Controllers - MVC - Macoratti.net
http://quickstarts.asp.net/3-5-extensions/mvc/default.aspx
Usando o WebMatrix beta 3 - Macoratti.net
Web Matrix - Incluindo referências a redes sociais no seu site
Razor API Quick Reference
Sintaxe Razor C# : http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-
syntax
Sintaxe Razor VB .NET :http://www.asp.net/webmatrix/tutorials/asp-net-web-pages-visual-basic
José Carlos Macoratti
www.macoratti.net/11/02/asp_rzr1.htm 7/7