WebMatrix - Apresentando Functions


Hoje vamos falar sobre Functions no WebMatrix.

As Functions, como os Helpers, são uma forma de obter produtividade e lhe ajudar a ter um código reutilizável em aplicações criadas com o WebMatrix.

A sua utilização segue a orientação do DRY - Don´t Repeat Yourself - que prega as boas práticas e a reutilização de código.

As functions WebMatrix são métodos estáticos, e como os Helpers, podem ser chamados a partir de qualquer lugar em sua aplicação WebMatrix.

Ao contrário dos helpers, que podem retornar apenas um bloco HTML para renderização no navegador, uma função pode retornar qualquer tipo C# válido.

Assim como os helpers as Functions devem ser criadas dentro de uma pasta na raiz do seu site chamada App_Code. O nome dessa pasta é uma convenção ASP.NET que automaticamente faz com que todo o código dentro dela esteja disponível para uso no resto de sua aplicação.

A pasta App_Code pode conter subpastas, cujo conteúdo também será acessível para o código no resto do seu site.

Usando Functions no WebMatrix

Vamos criar uma Function que recebe como parâmetro a data de nascimento e retorna a idade atual.

Abra o WebMatrix e clique em - Site From Template - para criar um novo site a partir de um modelo;

Escolha o modelo Empty Site e informe o nome do site. No exemplo eu dei o nome : FunctionDemo;

Vamos incluir a pasta App_Code na raiz do site que acabamos de criar;

Para isso clique com o botão direito do mouse sobre a pasta raiz - FunctionDemo - e clicando a seguir em New Folder;

Após isso basta digitar o nome App_Code na pasta criada;

A seguir vamos incluir um novo arquivo na pasta App_Code;

Clique com o botão direito do mouse sobre a pasta App_Code e selecione New File;

Selecione o template CSHTML e informe o nome FuncaoData.cshtml e clique no botão OK;

Após criar o arquivo digite o código no arquivo FuncaoData.chstml

Neste código, podemos ver que as funções são simples métodos estáticos envolvidos pelo bloco de código @functions{...}. Neste exemplo, declaramos uma função chamada IdadeAtual,  que aceita um DateTime e retorna um int.

A função simplesmente subtrai o ano da data de nascimento passado para a função a partir do ano em curso e, em seguida, diminui isso por mais um ano, se o ano de aniversário ainda não ocorreu.

Podemos ainda incluir outra função ao nosso arquivo FuncaoData.cshtml e para provar vamos incluir o método DiasProximoAniversario que recebe a data de nascimento (DateTime) e retorna o número de dias que faltam para o próximo aniversários (int):

Para poder chamar as funções criadas em nossa aplicação vamos incluir uma novo arquivo na raiz do site com o nome testeFuncao.cshtml e incluir neste arquivo o código a seguir:

Observe que no código acima estamos informando o nome da função precedido do símbolo @ e o método a ser utilizado passando o parâmetro esperado:

Agora execute a página para obter o seguinte resultado:

Pegue o projeto completo aqui: FunctionDemo.zip

Efs 5:15 Portanto, vede diligentemente como andais, não como néscios, mas como sábios,
Efs 5:16
usando bem cada oportunidade, porquanto os dias são maus.
Efs 5:17
Por isso, não sejais insensatos, mas entendei qual seja a vontade do Senhor.

Referências:


José Carlos Macoratti