segunda-feira, 28 de maio de 2012

Utilização do AJAX (JQUERY) em uma página ASP (classic)

Utilização do AJAX (JQUERY) em uma página ASP (classic)

Neste artigo, iremos abordar um exemplo prático da utilização da biblioteca JQUERY  em um projeto ASP 3 (classic), contudo, acredito que o mesmo exemplo poderia facilmente ser aplicado a outras tecnologias atuais.

Nosso objetivo é criar uma página ASP para consulta "fictícia de dados " , onde  faremos uma simulação de uma pesquisa no banco de dados.

Esperamos fazer com que a página ao receber a instrução de pesquisa, a mesma não seja carregada por completo novamente, desta forma, reduziremos   o tráfego de dados,  para isto, utilizaremos o AJAX (O AJAX é basicamente o uso do objeto XMLHttpRequest do Javascript.).

"AJAX – Asynchronous Javascript And XML, ele consiste em um metodo de fazer requisições no servidor para obter determinadas informações sem que seja necessário o reload da página."

Neste exemplo, utilizamos a biblioteca JQuery, note que a mesma possui vários métodos para o disparo de uma requisição AJAX, o principal deles é o $.ajax(),  para ilustrar um pouco mais, abaixo segue a referência usada no código.




Basicamente criaremos duas páginas ASP, a principal ficará responsável pela apresentação e interação com o usuário, e a secundária irá na verdade receber o parâmetro de pesquisa, consultar os dados e enviar o resultado da busca, segue os códigos de ambas as páginas abaixo:

página1:



página2:



Ivaldo de Oliveira é desenvolvedor sênior de software

terça-feira, 10 de abril de 2012

Criando um objeto do tipo dicionário no ASP classic

Criando um objeto do tipo dicionário no ASP classic (ASP 3)

O objeto Dicionário é usado para armazenar informações em pares nome / valor (referido como chave e item/dados-chave).

O objeto Dicionário pode parecer similar ao Array, no entanto, o objeto Dicionário é uma solução mais desejável para manipular dados relacionados.

Os itens podem ser qualquer forma de dados, e são armazenados na matriz.

Cada item está associado com uma única chave.

A chave é usada para recuperar um item individual, e é geralmente um número inteiro ou uma string, mas pode ser qualquer coisa exceto uma matriz.

O exemplo a seguir cria um objeto Dictionary, acrescenta alguns pares de chave / item a ela, e recupera o valor do item para o gr chave:

<%
Dim d

Set d=Server.CreateObject("Scripting.Dictionary")

d.Add "um","numero um"
d.Add "dois","numero dois"

Response.Write("O valor da chave um é: " & d.Item("um"))


'esta função pode ser utilizada para identificar uma chave existente
Function KeyExists(chave, dicionario)

    If dicionario.Exists(chave) Then
        msg = true
    Else
        msg = false
    End If
    KeyExists = msg
End Function

%>

Ivaldo de Oliveira é desenvolverdor sênior de softwares

sexta-feira, 23 de março de 2012

Como pegar uma página web e transformá-la em um arquivo binário usando ASP 3

 Como pegar uma página web em transformá-la um arquivo binário usando ASP 3  (VBSCRIPT)

  
Utilizando um objeto COM é possível através de uma linguagem de script fazer um GET de uma página web.


No meu caso , utilizei como exemplo a linguagem VBSCRIPT (ASP) , veja a seguir os códigos.

<%
'criamos a função para pegar a página e transformá-la em um array de bytes
Function GetURL(URL)
  Dim Http
  Set Http = CreateObject("WinHttp.WinHttpRequest.5.1") 
  Http.Open "GET", URL, False
  Http.Send
  GetURL = Http.ResponseBody 'recupera em array de bytes
End Function

'nesta função é possível transformar o objeto binário em uma string
Function ToString(Binary)
  Dim I, S
  For I = 1 To LenB(Binary)
    S = S & Chr(AscB(MidB(Binary, I, 1)))
  Next
  ToString = S
End Function
%>

domingo, 12 de fevereiro de 2012

Consumindo um web services com o ASP 3.0 (Clássico)


Recentemente tive que "voltar as origens", fazer uma pequena implementação em um projeto com tecnologia ASP 3.0, é isso mesmo, o famoso ASP Clássico com VBScript e companhia... :) 

O desafio era consumir um web services criado em .NET (.asmx) a partir de uma página ASP 3.0. 
 
Através de uma pesquisa na internet encontrei muitos exemplos e dicas , contudo, a maioria dos artigos faziam referências a componentes de terceiros para realizar tal operação, este tipo de recurso não me agrada muito , não porque gosto de reinventar a roda, mas por motivo de disponibilização dos mesmos em servidores de terceiros, problemas de registros de componentes e etc... 

A escolha foi fazer um código o mais simples possível e poupando o máximo a utilização de tecnologias encapsuladas de terceiros. 

Vamos ao exemplo: 

Este artigo não pretende ensinar como criar um web service, desta forma , partimos do princípio que o web services já existe... ok? 


1o Passo: Vamos pegar a especificação (wsdl) do serviço, veja a seguir um exemplo: 

Eu fiz o seguinte para visualizar o xml: http://www.seuservico.com.br/srv.asmx?wsdl



Note na imagem que é apresentado o exato XML esperado pelo serviço.

Este web service foi feito em .NET (.asmx) , foi utilizada a versão 4.0 .NET Framework .


2o PASSO -  Com base no XML  , iremos dar início a nossa codificação, veja a seguir:


<%
  
Dim url_ws, urlws_wsdl    
Dim obj_http, retorno


    urlws = "http://www.seuservico.com.br/service.asmx" 'endereço do seu serviço
    urlws_wsdl = "http://tempuri.org/
LogOnASP" 'note na imagem acima no header do xml que consta a entrada SOAPAction , ou seja, copiei fielmente conforma a imagem, note que LogOnASP é à ação ou método do ws.  

'abaixo monto o xml conforme a especificação.

    xml = "<?xml version =""1.0"" encoding=""UTF-8"" ?>" & vbCrLf
    xml = xml & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    xml = xml & "<soap:Body>"
    xml = xml & "<LogOnASP xmlns=""http://tempuri.org/"">"
    xml = xml & "<key>param1</key>"
    xml = xml & "<passwordMaster>param2</passwordMaster>"
    xml = xml & "<accountMaster>param3</accountMaster>"
    xml = xml & "<codeproduct>param4</codeproduct>"
    xml = xml & "<user>param6</user>"
    xml = xml & "<password>param7</password>"
    xml = xml & " </LogOnASP>"
    xml = xml & "</soap:Body>"
    xml = xml & "</soap:Envelope>"

 
'abaixo segue a codificação utilizada para enviar o xml para o serviço.   
    SET obj_http = Server.CreateObject("Microsoft.XMLHTTP")
    obj_http.open "post", urlws, False
    obj_http.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
    obj_http.setRequestHeader "SOAPAction", urlws_wsdl
    obj_http.send xml
    retorno = obj_http.responseText
 
'este código abaixo irá escrever em um arquivo o retorno do serviço.
 
    SET OBJFSO = Server.CreateObject("Scripting.FileSystemObject")
    SET ARQ = OBJFSO.CREATETEXTFILE("c:\ret.xml", true)
    ARQ.WRITELINE(retorno)

    SET OBJFSO = Nothing


    DIM OBJFSO, PASTA, ARQ

%>


Espero ter ajudado, contudo, havendo dúvidas por favor sinta-se a vontade para adicionar um comentário neste post.


Em outro artigo irei falar de XML DOM... 

Ivaldo de Oliveira é desenvolvedor sênior de softwares

quarta-feira, 18 de janeiro de 2012

Como criar e excluir um serviço do Windows usando Sc.exe


Na necessidade de instalar um serviço no Windows (windows service) a Microsoft disponibilizou um aplicativo que implementa todas as chamadas para todas as funções de uma API de controle de serviços do Windows.

Basicamente aplicativo SC.EXE funciona da seguinte forma:

Execute no prompt de comando:  sc create nomedoservico binPath= c:\meuservico.exe



Para maiores informações sobre novas opções para utilizar SC.EXE ,  faça o seguinte:

digite no prompt de comando: sc

Para excluir o serviço por exemplo, digite no prompt de comando: sc delete service_name

quarta-feira, 19 de outubro de 2011

Como saber quem deixou de ser seu amigo no Facebook?

Quer saber quem excluiu você do Facebook? Caso sim, acesse o site o who.deleted.me e cadastre a sua conta do Facebook. O serviço envia emails sempre que alguém remove o seu perfil da lista de amigos do Facebook.

domingo, 26 de junho de 2011