Anthony Moore
Microsoft Corporation
Outubro de 2000
Resumo: Uma explicação detalhada sobre o uso do ASP+ para verificar os controles da Web
Introdução
Este artigo explica em detalhes como os controles de verificação do ASP+ funcionam. Se você deseja gerar uma página complexa com controles de verificação ou deseja estender a estrutura de verificação, é aconselhável ler este artigo. Se você deseja aprender a usar controles de verificação ou decidir se deve usar controles de verificação, consulte "Verificação de entrada do usuário em ASP+ (inglês)".
começando
Sabemos que, em todo o processo de desenvolvimento ASP+, é importante entender a verificação. Olhando para a maioria dos sites comerciais hoje, você verá que existem muitas formas nesses sites que são obviamente validados executando muito código manuscrito. Escrever o código de verificação não é um trabalho interessante. Pode ser envolvente se você deseja escrever código para exibir tabelas de dados ou gerar gráficos em tempo real, mas ninguém pode confirmar aos seus colegas que essa abordagem "legal" pode proibir valores nulos no campo Nome.
Por outros motivos, a verificação de aplicativos da Web também é muito problemática. O HTML 3.2 possui muitas restrições ao conteúdo que você pode controlar ou feedback que você pode obter dos usuários, para que não possa aplicar técnicas que possam ser usadas em clientes mais funcionais, como proibir usuários de inserir determinados caracteres ou bipes. O uso de scripts do navegador pode resultar em verificação mais poderosa. No entanto, esse método é difícil de provar porque não há necessariamente scripts no navegador do cliente, e usuários maliciosos podem ignorá -lo. Portanto, para garantir a segurança do site, é necessário executar a mesma inspeção no servidor.
Ao desenvolver ASP+, nossa intenção original era usar apenas um controle para lidar com a verificação, que poderia ter sido um controle da caixa de texto que poderia exibir erros. Mas quando eu estava projetando o controle, descobri que esse desejo não podia ser realizado. Examinamos um grande número de formulários de entrada de dados, tentando encontrar uma solução que possa funcionar com o maior número possível de formas. Descobrimos que os formulários de entrada de dados têm muitos recursos interessantes:
Embora as mensagens ou ícones de erro sejam frequentemente adjacentes ao elemento de entrada, eles estão quase sempre localizados em diferentes células da tabela.
Muitas vezes, há uma área na página para resumir todos os erros.
Muitos sites incluem scripts do cliente para fornecer feedback mais rápido, impedindo que vã voltem e depois com o servidor.
Muitos sites que contêm scripts clientes exibem caixas de informação quando ocorrem erros.
Não apenas a entrada de texto valida, mas também listas suspensas e botões de rádio.
Se um campo estiver vazio, o site geralmente exibirá uma mensagem ou ícone diferente do que quando a entrada é inválida.
Muitas verificações de validade são boas substituições para expressões comumente usadas.
A verificação geralmente é baseada na comparação entre duas entradas.
90% ou mais das tarefas de verificação são operações comuns, como verificação de nomes ou códigos postais. A maioria dos sites ainda parece estar fazendo esse trabalho repetidamente.
Como as diferenças entre os sites geralmente são grandes demais para obter uma solução perfeita para lidar com todas as tarefas de verificação para cada site.
Levando em consideração tudo isso, a solução final incluiu cinco controles de validador, o controle de validação e a integração com o objeto da página. Também é óbvio que a solução precisa ser estendida e uma API é necessária para o cliente e o servidor para cooperar.
Encontramos através de várias validações realizadas em nossa pesquisa que parecíamos precisar de uma caixa de ferramentas maior. Na maioria dos ambientes de componentes, como o Microsoft® ActiveX®, podemos ter tentado integrar toda a funcionalidade do controle de verificação em um controle, lidando com diferentes propriedades em diferentes modos. Felizmente, no entanto, há herança mágica na estrutura do Microsoft® .NET, que fornece um conjunto de controles para realizar validação específica de propriedades específicas, porque o esforço extra necessário para derivar cada novo controle é muito pequeno.
A maior parte do trabalho realizado por esses controles é implementado em seu pai -BaseValidador -mãe comum. Você também pode derivar do BaseValidator ou de outros controles para fazer todo o trabalho. De fato, mesmo o BaseValidator é preguiçoso demais para implementar sua própria propriedade de texto, mas herda da propriedade Label.
Quando e o que aconteceu?
Compreender a sequência de eventos é muito eficaz ao trabalhar com páginas que contêm controles da Web de validação. Se uma condição de verificação for opcional, você precisará saber exatamente quando a verificação é executada no cliente e no servidor. Se você deseja escrever sua própria rotina de verificação, pode ser muito demorado ou ter efeitos colaterais. Ao mesmo tempo, também é importante entender o tempo de chamar a rotina de verificação.
Primeiro, vamos dar uma olhada no servidor.