www.devmedia.com.br
[versão para impressão]
Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=25657

Data Annotations para ASP.NET MVC - Revista .Net Magazine 99

Neste artigo iremos conhecer um pouco mais sobre a customização de classes de dados (data classes – também chamadas de entity classes) para ASP.NET MVC e ASP.NET Dynamic Data usando Data Annotations.





.net Magazine 99

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da .net Magazine 99


De que se trata o artigo

Neste artigo iremos conhecer um pouco mais sobre a customização de classes de dados (data classes – também chamadas de entity classes) para ASP.NET MVC e ASP.NET Dynamic Data usando Data Annotations, que nada mais são do que atributos para “decorar” as propriedades, que podem conter regras de validação, de exibição dos dados e até mesmo de relacionamento com outras classes de dados. Iremos ver os conceitos para utilização dos atributos e classes de validação, exibição e modelagem de dados.

Em que situação o tema é útil

A utilização de Data Annotations é muito útil quando precisamos, além de usar classes de dados para transportar dados entre camadas de uma aplicação ASP.NET MVC ou ASP.NET Dynamic Data, utilizar estas classes para exibir dados na interface do usuário, permitindo uma forma rápida e simples de especificar e implementar formatação de dados, validação e relacionamento entre as classes. Além disso, podemos criar validações customizadas para praticamente quaisquer casos em que a simples validação de obrigatoriedade de campos não se aplique ou não seja suficiente.

Data Annotations

Neste artigo iremos mostrar o que são, como funcionam e quais as utilizações dos Data Annotations, que são classes atributos que formam uma poderosa ferramenta na validação, formatação e no relacionamento de classes de dados para controles ASP.NET MVC e ASP.NET Dynamic Data. Uma propriedade decorada com os atributos Data Annotations pode ser customizada para que se torne um campo obrigatório, para que tenha uma formatação de exibição adequada, para que esteja de acordo com o modelo de dados da sua aplicação, e também para que sejam aplicadas regras específicas, como limite de idade, caracteres permitidos em um campo, etc.

Dizem as boas práticas que não adianta um software ser bem escrito, ter boa interface, ser leve e funcional, se permitir que seus dados estejam fora de padrão, sem validação e sem aplicar nenhuma ou poucas regras aos mesmos. O bom sistema é aquele que, impede que o usuário insira dados que não serão corretamente interpretados ou armazenados, podendo causar falhas na execução do código ou gerar problemas nas regras do negócio.

Quando falamos em aplicações para Web, a validação é o ponto chave, já que temos que utilizar scripts de cliente para realizar tal tarefa. Aí o conhecimento do desenvolvedor conta muito, já que temos que utilizar código e bibliotecas cross-browser, entendendo o processo e desenvolvendo scripts que rodem em quaisquer plataformas e navegadores. Por exemplo, para validar uma entrada de “Nome” o desenvolvedor geralmente cria uma função que verifica se o campo está preenchido, se tem a quantidade mínima de caracteres, se não ultrapassa a quantidade máxima, se possui números ou caracteres inválidos dentro do valor digitado, etc. Além disso, ele precisa testar em diversos browsers para ver se o script que gerou não tem problemas de compatibilidade. É um trabalho digno de Hércules.

O pessoal de desenvolvimento da Microsoft, não indiferente ao árduo trabalho de um desenvolvedor, pensou nisso e criou uma forma muito simples e versátil de fazer um sistema realizar validações de dados para aplicações ASP.NET MVC e ASP.NET Dynamic Data sem estresse, chamado Data Annotations.

Introduzindo Data Annotations

Data Annotations é um namespace (System.ComponentModel.DataAnnotations) que contém classes atributos que decoram propriedades de classes de dados. Traduzindo, sempre que queremos realizar algum tipo de validação em um campo de formulário em uma view, colocamos um atributo na respectiva propriedade da classe de dados para dizer que tipo de validação o sistema deve realizar para aquele campo no formulário dentro de uma view. Muito prático, muito simples, muito eficiente.

Apesar de facilitar muito a vida do desenvolvedor, o namespace DataAnnotations usa duas formas de validação, que o leitor já deve estar habituado: validação no lado cliente e no lado servidor. A vantagem da validação no lado do cliente é o ganho no desempenho, já que não há tráfego de requisições HTTP para o servidor Web, o que gera uma resposta quase instantânea na validação de dados nos controles HTML.

A mágica por trás das classes do Data Annotations está embutida em algumas bibliotecas JavaScript que acompanham o pacote ASP.NET MVC 3: jquery.validation.js e jquery.unobstrusive.validation.js. Estes dois arquivos contém os scripts utilizados pela engine do MVC para realizar a validação de dados no lado do cliente, ou seja, diretamente no browser. Os scripts de validação são gerados automaticamente pela engine de renderização dos controles na respectiva View, que ficam “vacinados” contra entradas inválidas, de acordo com a imunização que o desenvolvedor especificar.

Mas os Data Annotations também têm suas surpresas. Você, caro leitor, pode estar se perguntado: “Mas e se o cliente não permitir JavaScript?” Apesar de improvável, é uma hipótese possível, já que todos os browsers oferecem esta opção. Para nossa surpresa, todas as validações possíveis com Data Annotations podem ser feitas no lado do servidor caso o browser não esteja habilitado para JavaScript. E, pasmem, sem nenhuma configuração extra.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

Marcio Paulo

Guru .net e tecnologias MS