Israel Aéce

Microsoft MVP, MCP, MCAD, MCTS, MCPD e MCT

My Links

Blog Stats

Archives

Post Categories

Links

Login

Javascript e ASP.NET

Nunca fui la muito fã de JavaScript, mas estou aos poucos vendo a sua GRANDE utilidade em aplicativos web-Based. Estou trabalhando em um projeto onde a interação com o usuário é alta, ou seja, formulários complexos com grandes funcionalidades e também regras que devem ser validadas client-side.

Com este cenário, talvez conseguiria fazer isso utilizando VB.NET ou C#, mas com a desvantagem de que este código ir correr no servidor, sendo necessário fazer o PostBack da página, executando a rotina e devolvendo para o cliente o que realmente lhe interessa. Isso pode tornar custoso, levando em consideração um grande volume de acessos simultaneos. Nesse caso, JavaScript está dando um banho de praticidade para o cliente final, tornando as coisas bem interativas, sem a necessidades dos PostBacks.

O problema que quando o código começa a ficar um pouco grande, começa a ficar complicado, mas nada tão impossível de se mexer. Uma saída intessante para um caso que tive vou utilizar Remote Scripting, pois quando o usuário digita o código (CNPJ) do Cliente em um TextBox, preciso complementar o resto do formulário (Endereço, Cidade, Estado e CEP) referentes a este Cliente que devem vir da DB (SQL Server). Poderia sem problemas utilizar o evento TextChanged (server-side) do TextBox, mas isso me obrigaria um PostBack, tendo que submeter a página ao servidor e asssim tendo que construí-la novamente no cliente com os dados necessários.

Já com o uso do Remote Scripting, as coisas ficam mais transparentes, ou seja, é invocado um determinado método assíncrono, e o resultado é devolvido através de uma funçao CallBack (em JavaScript) que por sua vez (no meu caso preenche os controles) faz o que quiser com o resultado.

Que é trabalhoso, não tenho dúvida, mas deixa a aplicação bastante interessante, principalmente para os usuários que a utilizarão.

A única pergunta que gostaria de deixar no ar é a seguinte: Já estou fazendo uma porção de validações no cliente, principalmente com relação a datas, onde existem regras para que a mesma seja digitada apenas em um determinado período, verificações de caracteres válidos, entre várias outras verificações. A questão é: depois de tantas verificações, validações client-side será que ainda é necessário fazer essas mesmas validações server-side?

posted on Wednesday, August 11, 2004 12:19 AM

Feedback

# re: Javascript e ASP.NET 8/11/2004 5:56 AM Pedro Moreira Santo

Ola'

Remote scripting sempre me pareceu algo de interessante mas ate' agora nunca tive oportunidade de experimentar, ate' ja' me tinha esquecido que existia.

Em relacao a' pergunta que deixas no ar, eu acho que e' necessario repetir as validacoes no servidor. Imagina o seguinte cenario, abro a tua pagina, faco view source para ver o HTML da pagina, gravo no meu disco, apago o teu javascript e validacoes, lanco a tua pagina alterada por mim do meu computador preencho como quero e submeto, voila eis que passei por cima do codigo que tao esforcadamente escreveste.

# re: Javascript e ASP.NET 8/11/2004 6:36 AM Luis Abreu

Como disse o Pedro, e sempre necessario efectuar a validacao no servidor. E a unica garantia que tens de que os dados introduzidos sao validos.

# re: Javascript e ASP.NET 8/11/2004 7:00 AM Pedro Santos

Olha que isso do remote scripting é muita manhoso. Podes ter erros no código que não és avisado de nada, coisas assim. Mas que dá um belo efeito, dá!

Quanto à tua pergunta, pelos vistos não sabes que os validators das ASP .NET da Microsoft só fazem código cliente para o Internet Explorer... E mesmo que os teus validators funcionem em todos os browsers, há sempre a possibilidade de lhes trocar a volta no cliente, tal como o Pedro e o Luis disseram.

# re: Javascript e ASP.NET 8/11/2004 8:50 AM Israel Aece

Ola Pessoal,

Realmente tinha isso em mente, ou seja, com o script fica no cliente, torna-se vulneravel (desde que tenha um usuario que conheca um pouco de HTML e JS).

Entao toca-me ir programar em VB.NET/C# para fazer tais validacoes server-side ;)

Obrigado pelas dicas.

# re: Javascript e ASP.NET 8/11/2004 11:07 AM Joao Paulo Carreiro

PQ e que nao usas custom validators?

No cliente, usas o RS para chamar a mesma funcao ke tens no Server.

# re: Javascript e ASP.NET 8/11/2004 11:34 AM António Cruz

Olá.

Pedro, Na documentação que acompanha o SDK, podemos ler:

"Note that the Web Forms page framework always performs validation on the server, even if the validation has already been performed on the client. This helps prevent users from being able to bypass validation by impersonating another user or a preapproved transaction."

A referida documentação está disponível on-line, por ex. aqui:

http://samples.gotdotnet.com/quickstart/aspplus/doc/webvalidation.aspx

Em relação ao uso do RS, acho preferível usar o XMLHTTP pelo menos nos casos em que o uso do IE possa ser um requisito de operação, como costuma ser na maioria das aplicações para intranets que fazemos. Este componente teve direito a maior atenção no ASP.NET 2.0 mas mesmo como o 1.0/1.1 a sua implementação é trivial. Basta procurar no Google por "xmlhttp" e temos acesso a vários exemplos...

Faço votos de bom trabalho.

# re: Javascript e ASP.NET 1/4/2005 4:19 PM Gustavo Romano

bom...não velho comentar o seu questionamento, e sim gostaria de lhe pedir se poderia me mandar um exemplo da utilização do Remote Scripting com ASP.NET....
já utilizei algumas vezes esta função com PHP, mas com ASP.NET não estou conseguindo...se puderes me mandar um exemplo ficaria grato.

email at gustavoromano.com

# re: Javascript e ASP.NET 9/23/2005 9:09 PM Glaudiston

Olá Israel...

Pois é... sempre é necessário validar em sever-side... mas para q a aplicação seja boa é mesmo necessário validar em client-side com javascript... e multas vezes precisamos ler dados do servidor, e os postbacks são um problema na interface com o usuário final... então poderíamos usar o register script callback do asp.net 2.0... mas e a interoperabilidade? isso só funciona em I.E....
A resposta está em RPC usando iframes... assim podermos resolver o problema dos postbacks sem problemas

Title  
Name  
Url
Box Code
Protected by FormShield
Comments