domingo, 12 de julho de 2015

Asp.Net MVC – Trabalhando com o Razor



                                
Neste artigo, gostaria de dar uma breve explicação da linguagem Razor, demonstrando com pequenos exemplos práticos utilizando como ferramenta o Microsoft Visual Studio 2013.Uma das inúmeras dúvidas quando começamos a aprender o padrão de desenvolvimento MVC é o significado e a utilidade da linguagem Razor. O “Engine” Razor nada mais é do que uma linguagem de renderização utilizada nas “Views” para a interpretação de código do lado do servidor, tudo que está escrito em Razor será executado no servidor antes de devolver o código em HTML já processado, se tornando um dos principais elementos quando desenvolvemos no padrão MVC. Não podendo esquecer que também encontramos outras linguagens e classes, como por exemplo: Javascript, CSS, HTML Helpers e a própria linguagem C# ou Vb (ambas executadas do lado servidor). 
 
Principais Características
Com o Asp.Net Razor temos a possibilidade de inserir a lógica da aplicação diretamente na camada de visualização do projeto (View). Um bom exemplo é que podemos juntar com códigos HTML. Temos algumas vantagens como: o fácil aprendizado, pois a sintaxe é muito identica ao HTML e C#, ou seja, o desenvolvedor que domina estas linguagens não irá encontrar muitos problemas e consequentemente tornando um código mais limpo. Outra caracteristica que ajudará nós programadores é o suporte ao “IntelliSense” do Microsoft Visual Studio, facilitando muito na programação.
Outras funcionalidades
Os arquivos do tipo “Razor” são criados na extensão “.cshtml” e são processados pelo motor do ASP.NET.
Durante o processamento da “View”, são identificados a codificação do lado do servidor através do símbolo @ (arroba). Qualquer código sem este símbolo não é interpretado pelo “Razor” e é entregue no arquivo final como um HTML puro. Com isto é possível criar páginas com conteúdos dinâmicos, não equecendo que podemos possuir dois tipos de conteúdos, sendo: o que são executados do lado do cliente (HTML, CSS, Javascript) e o lado do servidor, geralmente o conteúdo que utilizamos para acessar informações nas bases de dados. O Razor permite adicionar código do servidor ao conteúdo do cliente na camada Visualização (View).

Podemos conferir na tabela 01 os principais comandos e utilizações.


Comando
Função
Exemplo
@
Indica que trata-se de um comandoserver side, e logo em seguida será escrito o código Razor

@{
Inicio de bloco de código, sempre termina com }
@{
    ViewBag.Title = "Home”;
    }
@if
@switch
Criação de condicional
@if (idade > 18) { ... }
@switch (dia) { case ...}
@foreach
@for
@while
Criação de laço para iteração em coleções e Criação de laço para diversos tipos de dados
@foreach (var item in Filmes)
@for (var i = 0; i <= 10; i++)
@while(k>5)
@*
Criação de comentário, sempre termina com *@
@* Isto é um comentário *@
Tabela 01: Principais comandos e utilizações.
Exemplos Práticos
A partir das informações acima podemos montar um pequeno exemplo prático, no meu caso estarei utilizando o Visual Studio 2013 para uma aplicação do tipo MVC. Clique em “File/New/Project” e escolha Asp.Net MVC 4, ou 5. Eu prefiro criar os conteúdos do zero, para isto deveremos criar o nosso “Controller” e em seguida a “View”. Ver Imagem 01.
Figura 01: Criando um projeto de exemplo.
Para adicionar um “Controller” deveremos clicar em cima de “Controllers” escolhendo Add/Controller...”. Em Controller name defina para “TheClubController” Ver Figura 02.
Figura 02: Adicionando o Controller.
Já para utilizarmos a View deveremos seguir os mesmos passos, apenas alterando para escolher “Add/View”. Em View Name coloque “Index” para identificá-la.Ver Imagem 03.
Figura 03: Adicionando a View.
Não podemos esquecer de um detalhe importante que a estrutura de nomes devemos seguir corretamente. Ver Imagem 04.
Figura 04: Estrutura de Pastas em uma aplicação MVC.
·        Utilizando variáveis
Para utilizarmos variáveis, de acordo com a tabela 01 comentada anteriormente, usaremos o arroba (@) seguido de chaves ( { ). No exemplo abaixo declaramos duas variáveis para em seguida intercalarmos no próprio código HTML. Ver Figura 05.

Exemplo:

    <div>
        <h2>Exemplo 01: Utilizando variáveis</h2>

        @{
            var motor = "Razor";
        }

        @{
            var ferramenta = "Visual Studio 2013";
        }
<p>Estamos utilizando como ferramenta de desenvolvimento o : @ferramenta </p>
     <p>A view utilizada é o : @motor</p>
    </div>
Figura 05: Exemplo de utilização de variáveis.

·        Criação de Estruturas Condicionais
O uso de estruturas condicionais no Razor é muito parecido com a linguagem C#. No exemplo a seguir estamos realizando um “If/Else“ para comparar um valor inteiro e posteriormente intercalarmos o resultado com códigos HTML. Ver Figura 06.
Exemplo:
<div>
<h2>Exemplo 02: Estruturas Condicionais - If/Else</h2>

        @{
            int idade = 19;
        }

        @{
            var nome = "Thiago";
        }

        @if (idade > 18)
        {
<p> O indivíduo @nome tem @idade anos! </p>
        }
        else
        {
<p> O indivíduo ainda não atingiu a maioridade! </p>
        }
    </div>
Figura 06: Exemplo utilizando If/Else
Achei interessante demonstrar o uso do “Switch/Case”, com ele poderemos intercalar diversas informações. No exemplo prático abaixo faremos a comparação com o dia corrente da semana e de acordo com o resultado daremos uma mensagem diferente ao usuário. O resultado poderá ser conferido na Imagem 07.
Exemplo:
<div>
<h2>Exemplo 03: Estruturas Condicionais - Switch</h2>
        @{
            var diadasemana = DateTime.Now.DayOfWeek;
            var dia = diadasemana.ToString();
            var mensagem = "";
        }
            @switch (dia)
            {
                 case "Monday":
mensagem = "Hoje é o Primeiro dia da   Semana.";
                 break;
                 case "Thursday":
mensagem = "Apenas um dia antes de fim de semana.";
                    break;
                 case "Friday":
                    mensagem = "Amanhã é fim de semana!";
                    break;
                 default:
                    mensagem = "Hoje é " + dia;
                    break;
             }
            <p>@mensagem</p>
       </div>
Figura 07: Exemplo utilizando Switch/Case.
·        Criação de laço (For, Foreach, While)
O uso de laços também são de extrema importância. Podemos fazer o uso do For, Foreach e While, dependendo da necessidade.
No exemplo abaixo estamos utilizando o “For” para percorrer um determinado intervalo. A cada iteração imprimimos na tela intercalando com o código “<p>” em HTML para podermos pular uma linha. Ver Imagem 08.
Exemplo:
<div>
        <h2>Exemplo 04: Criação de laço - For</h2>
       
        @for (var i = 0; i <= 5; i++)
        {
            <p>Número: @i</p>
        }

    </div>


Figura 08: Exemplo utilizando o For.

Já o Foreach é utilizado para fazer iterações em coleções de dados. Ver exemplo e Imagem 09.

Exemplo:

    <div>
<h2>Exemplo 05: Criação de laço para iteração em coleções - Foreach</h2>

@{string[] pessoas = { "Thiago", "João", "Maria", "José" }; }
         @foreach (var item in pessoas)
         {
            <p>@item</p>
         }
    </div>


Figura 09: Exemplo utilizando o Foreach.
 
Temos também outra opção com o While, já sabemos que a utilidade é bem parecida com a do “For”. Ao decorrer do desenvolvimento fica a cargo do programador fazer a escolha certa do comando conforme a necessidade. O resultado podemos verificar na Imagem 10.

Exemplo:

    <div>
        <h2>Exemplo 06: Criação de laço - While</h2>

        @{int k = 0;}

        @{ 
            while (k < 5)
            {
                k += 1;
                <p>Linha @k</p>
            }
        }

    </div>

Figura 10: Exemplo utilizando o While.
·        Criação de Comentários
Para criar um comentário referente a um trecho de código ou apenas desabilitar alguma codificação deveremos usar a (@* - Para determinar o início) e (*@ - Para o fim).
Exemplo:
@*<h2>Exemplo 04: Criação de Comentários</h2>
  @{
       var motor = "Razor";
   }

  @{
       var ferramenta = "Visual Studio 2013";
   }

<p>Estamos utilizando como ferramenta de desenvolvimento   o : @ferramenta </p>
   <p>A view utilizada é o : @motor</p>*@

Conclusões

A minha intenção neste artigo foi de dar uma noção, um norte para quem está começando a trabalhar com Asp.Net MVC  junto com o Engine Razor. Abordei algumas características, sintaxes e exemplos práticos e simples dos principais comandos, com o intuito de tornar um fácil aprendizado. Fica aí a dica, Um abraço e até o mês que vem!


Nenhum comentário:

Postar um comentário