Validações Asp .Net

A validação de campos em ambiente Web é complicada pois além das habituais variáveis a serem avaliadas também há a questão de onde serão executadas, no lado do cliente ou no lado do servidor. Ambas têm seus prós e contras:

  • No lado do cliente: não há transferência desnecessária de dados, entretanto, pode haver problemas relativos à compatibilidade entre navegadores, e mesmo que seja testado em todos os navegadores sempre aparecera um novo, ou menos conhecido gerando problemas na aplicação Web;
  • No lado do servidor: não haverá problemas de compatibilidade. Contudo vamos transferir o problema para a conexão e transferência dos dados, se a conexão entre ambos for lenta, pode se ter perda de pacotes o que se torna desnecessário para este tipo de operação.

Para resolver estes problema o .Net framework conta com alguns componentes que auxiliam na solução deste problema. Estes componentes se encontram na Toolbox na área Validation. Como mostrado na figura abaixo.

Como qualquer outro componente da Toolbox, eles são inseridos no formulário. Sendo que este deve ser posicionado onde se deseja que a mensagem seja mostrada. Esta mensagem deve ser definida nas propriedades dos componentes, assim como o restante das configurações.

Na figura abaixo é mostrado parte de um formulário em modo Design, onde foi inserido um componente RequiredFieldValidator. Que está destacado em vermelho.

Na primeira figura são mostrados vários componentes na Toolbox, cada um deles tem um objetivo especifico e por este motivo cada um tem suas propriedades. Apesar disso há uma propriedade que é comum a esses componentes que é o caso da ControlToValidate. Nesta propriedade deve ser informado o campo do formulário que se deseja validar.

Abaixo vamos nos aprofundar um pouco em cada um destes componentes:

  • CompareValidator: Este componente é utilizado para comparar valores, assegurando ambos sejam iguais, utilizado geralmente em cadastro ou validações de senhas. A principal propriedade deste componente é:
    • ControlToCompare: nesta devera ser informado o campo do formulário a ser comparado com o campo informado na propriedade ControlToValidate;
  • CustomValidator: Este é o mais flexível, em relação aos outros componentes, pois pode se escrever o próprio código para validar. Utilizado geralmente quando os outros componentes não corresponde à necessidade da validação.
  • RangeValidator: Este será utilizado quando for necessário validar um intervalo entre dois valores. Como por exemplo: valor mínimo e valor máximo, ou validar datas como data inicial e data final, etc.
    • MaximumValue e MinimumValue: estas duas propriedades devem ser informada o valor máximo e mínimo, respectivamente,  do intervalo a ser validado.
  • RegularExpressionValidator: Neste é possível validar os valores conforme a Expressão Regular informada. Uma expressão regular é uma forma de criar um padrão, onde, este padrão será comparado com o valor.
    • ValidationExpression: Nesta propriedade deverá ser informada a expressão regular a ser comparada com o valor desejado.
  • RequiredFieldValidator: Este pode ser o mais utilizado, pois ele valida se o campo foi preenchido, ou seja, se o campo estiver vazio não permitirá que o usuário prossiga.
  • ValidationSummary: Este componente cria uma área no formulário onde são mostrada todas as mensagens reunidas. Estas mensagens são as mesmas que são mostradas nos componentes quando ha algo de errado com suas validações.

Abaixo temos o exemplo de um formulário com os componentes inseridos, mas somente estarão visíveis para o usuário quando ocorrer problemas no preenchimento.

Como pode ser visto na figura abaixo, onde são mostradas as mensagens definidas nas propriedades de cada componente, com informações uteis ao usuário, auxiliando na resolução do problema no preenchimento do mesmo.

Para complementar estes componentes de validação podem ser utilizados junto aos componentes do toolkit Ajax, deixando ainda mais amigável, ainda, a interação com o usuário. Mas este assunto fica para um outro post.

Chegando ao final deste post posso afirmar que estes controles de validação são muito uteis para as aplicações Web. Além de serem de fácil configuração, o que agiliza muito o trabalho do desenvolvedor, eles também podem resolver algumas questões citadas no inicio do post. Como a incompatibilidade dos navegadores.

Publicado em Sem categoria | 1 comentário

Tratamento de Exceções Estruturadas

A Definição de uma exceção é algo que sai da rotina do aplicativo. Para trata-las o Microsoft .Net Framework oferece uma estrutura conforme mostrado na figura 1. O tratamento de exceções pode ser utilizado para prevenção de erros, evitando assim, consequências indesejáveis ao aplicativo e a seus dados.

Cada parte da estrutura tem um objetivo especifico:

  • Try: Este comando “tenta” executar o bloco de codigo, se ocorrer alguma exceção o código não será executado, além de indicar o inicio do bloco de tratamento de exceções;
  • Catch: Este comando captura a exceção e executa os comandos informados pelo desenvolvedor. Em um mesmo bloco de código podem ocorrer varias exceções diferentes, assim pode haver vários blocos Catch que trate exceções diferentes;
  • Finally: Este comando indica que qualquer bloco de código inserido nele, será executado, ocorrendo ou não uma exceção;
  • End Try: Este comando indica o final do tratamento de exceções.

Abaixo alguns exemplos de como e onde pode se utilizar o tratamento de exceções.

Figura 2 – Utilização da Estrutura Try

Na figura 2 temos dois blocos catch aninhados, onde cada um tem seu objetivo:

  • O primeiro controla a abertura do arquivo;
  • O segundo é utilizado para verificar se é possível gravar no arquivo;

Acima poderia ter sido utilizado duas instruções Catch ao invés de aninha-las, uma para capturar a exceções de abertura do arquivo e outra para as exceções de gravação do arquivo. A figura 3 mostra como seria a sintaxe com duas instruções Catch e a sintaxe do Finally.

Além do bloco Try o Microsoft .Net Framework também oferece o comando Throw, este comando cria uma instância de uma exceção a qual pode ser capturada pelo comando Try se necessário.

Concluindo pode-se dizer que o tratamento de exceções é muito importante por tornar seu aplicativo muito mais robusto e confiável, pois nem sempre se pode prever todas a situações, mesmo para analistas e desenvolvedores muito experientes.

Publicado em Sem categoria | 1 comentário

Já que na região encontramos poucos encontros, aproveito para divulgar esta muito interessante sobre licenciamento de software.

Publicado em Sem categoria | 1 comentário

Em breve

Pessoal!!!

Em breve estarei postando artigos sobre TI principalmente sobre programação. Problemas do dia a dia, e dicas encontradas a partir de estudos sobre programação e gerenciamento de projetos.

Publicado em Sem categoria | Deixar um comentário