DataAnnotations no Blazor

Como já foi dito anteriormente aqui nesse blog, o Blazor é compatível com o .NETStandard. Isso significa que podemos reaproveitar no Blazor uma série de recursos.

Um desses recursos é conhecido como DataAnnotations. Veremos nesse artigo o que é o DataAnnotations e o que ele tem a nos oferecer em aplicações Blazor.

System.ComponentModel.DataAnnotations

O namespace System.ComponentModel.DataAnnotations, contém uma série de classes para serem utilizadas como atributos em propriedades. Essas classes de atributo são utilizadas para definição de Metadados em uma classe.

Os DataAnnotations são comumente utilizados em classes de modelo, e foram inicialmente pensadas para serem utilizadas em projetos ASP.NET e ASP.NET MVC.

Nós podemos, por exemplo, utilizar a classe RequiredAttribute para definir que uma determinada propriedade é obrigatória. Veja um exemplo na Figura 1.

Figura 1: Usando o RequiredAttribute em ume propriedade

Veja que o atributo é aplicado como uma anotação na propriedade em questão. E a anotação é escrita entre colchetes […].

O namespace System.ComponentModel.DataAnnotations possuí uma série de atributos, e você pode ver no link abaixo, a lista completa na documentação oficial da Microsoft sobre o tema.

Documentação da Microsoft sobre DataAnnotations

Validação

As principais funcionalidades do DataAnnotations estão relacionadas à validação. Porém, nem todas as classes desse namespace são utilizadas para esse fim.

Para o Blazor, a maior utilidade do DataAnnotations são os seus atributos de validação. Veja na lista abaixo os principais atributos de validação do DataAnnotations, que podemos aplicar em classes de modelo no Blazor.

  • RequiredAttribute: Valida se a propriedade foi preenchida
  • MaxLengthAttribute: Valida o tamanho máximo do conteúdo de uma propriedade
  • MinLengthAttribute: Valida o tamanho mínimo do conteúdo de uma propriedade
  • StringLengthAttribute: Valida o tamanho mínimo e máximo de uma propriedade
  • RangeAttribute: Valida se uma propriedade numérica está dentro de uma determinada faixa de valores
  • PhoneAttribute: Valida se o conteúdo de uma propriedade é um número de telefone
  • EmailAddressAttribute: Valida se o conteúdo de uma propriedade é uma conta de e-mail
  • CreditCardAttribute: Valida se o conteúdo de uma propriedade é um Número de cartão de crédito
  • UrlAttribute: Valida se o conteúdo de uma propriedade é uma URL
  • RegularExpressionAttribute: Valida se o conteúdo da propriedade combina com uma determinada Expressão Regular.

Veja que temos um grande leque de possibilidades para validação de dados para o Modelo da nossa aplicação.

Blazor

As validações dos DataAnnotations foram inicialmente concebidas para serem aplicadas no lado do Servidor, de uma aplicação ASP.NET. Com o Blazor podemos aproveitar essas mesmas funcionalidades do lado do Cliente.

O Recurso do Blazor que aproveita de imediato os DataAnnotations, é o EditForm, que você pode conhecer nesse artigo aqui:

Introdução aos Forms do Blazor

Um EditForm vai interpretar e aplicar as validações feitas por DataAnnotations, no momento do Submit do formulário. Veremos isso em detalhes no próximo artigo.

Mas a grande vantagem que veremos a partir da adoção do Blazor, é que ele vai nos permitir compartilhar as mesmas classes de modelo do servidor, incluindo suas anotações. Isso, é claro, se forem escritas em um projeto .NET Standard.

Ou seja, se você arquitetar bem o seu modelo, poderá utilizar as mesmas classes e validações, no lado do servidor e no lado do cliente.

Na minha opinião, essa será a grande vantagem que o Blazor terá sobre outros frameworks. Principalmente para quem já tem a cultura de desenvolver aplicações .NET no lado do Servidor, com o ASP.NET.

Grande Abraço e até o próximo!

2 comentários em “DataAnnotations no Blazor

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s