XML Web Services com ASP.NET: Gerando log da comunicação em arquivos XML

por Thiago Nishio 4. fevereiro 2011 19:03

Fala pessoal!

Dando continuidade ao tema do post anterior (XML Web Services com ASP.NET: Criando uma classe Proxy manualmente), explicarei como gerar arquivos XML que representam as mensagens SOAP trocadas entre a aplicação web e o XML Web service. SOAP (Simple Object Access Protocol) é um protocolo para a troca de mensagens estruturadas comumente utilizada em XML Web services.

Primeiramente, incluímos a classe TraceExtension no projeto. Esta classe está definida no arquivo TraceExtension.cs (8,42 kb) (Clique para baixar). Depois é necessário gerar a classe proxy manualmente e editá-la. Inserimos o namespace "SoapMessageUtility" (namespace da classe TraceExtension) na definição da classe proxy e, na definição do método que queremos gerar o log, adicionamos um atributo do tipo TraceExtensionAttribute (conforme a linha 423, destacada na figura 1).

Figura 1: Exemplo de atributo a ser informado no método do Web Service

Há quatro parâmetros que devemos informar ao declarar o atributo do tipo TraceExtensionAttribute: LogTypeMode, Path, RequestFileName e ResponseFileName.

  • LogTypeMode: Define o que deverá ser gerado pelo log;
  • Path: Caminho do diretório onde será armazenado o log;
  • RequestFileName: O nome do arquivo que será gravado para registrar a mensagem enviada para o XML Web Service;
  • ResponseFileName: O nome do arquivo que será gravado para registrar a mensagem recebida pela aplicação web.

O parâmetro LogTypeMode contém as opções None, Request, Response e RequestResponse.

  • None: Não gera log;
  • Request: Gera apenas o log da mensagem enviada para o XML Web service;
  • Response: Gera apenas o log da mensagem recebida pela aplicação web;
  • RequestResponse: Gera o log do envio e do recebimento das mensagens.

Lembrando, o diretório onde será armazenado os arquivos XML deve existir, senão ocorrerá erro.

Até mais!

Tags: , , ,

ASP.NET | Programação



XML Web Services com ASP.NET: Criando uma classe Proxy manualmente

por Thiago Nishio 28. janeiro 2011 17:37

Fala pessoal!

Utilizando a ferramenta de linha de comando WSDL.EXE do framework .NET, é possível gerar manualmente a classe Proxy, classe responsável por abstrair a comunicação entre a aplicação web e o XML Web Service. Pode-se também utilizar a funcionalidade <Add Web Reference...> do Visual Studio, onde há a possibilidade de gerar a Proxy dinamicamente, mas impossibilita alterar o seu código-fonte (alterar algum comportamento de um de seus métodos, por exemplo).

A ferramenta será executada no Prompt de Comando, basta entrar em Menu Iniciar > Programas > Acessórios > Prompt de Comando.

A sintaxe básica é: wsdl.exe {URL} [parâmetros]

É obrigatório informar a URL para um arquivo do tipo .WSDL, .XSD ou .DISCO. Por exemplo: http://www.dominio.com/ExemploWebService.asmx?WSDL

A ferramenta aceita vários parâmetros, abaixo estou listando as que geralmente uso:

  • /language: permite informar a linguagem de programação utilizada ao gerar o código-fonte. O valor padrão é CS (C#);
  • /namespace: o Namespace em que a classe fará parte;
  • /out: nome do arquivo da classe Proxy.

No meu próximo post, irei descrever como gerar um arquivo XML da comunicação entre a aplicação web .NET e um XML Web Service, muito útil para analisar os dados transferidos.

Até mais!

Fontes: Creating an XML Web Service Proxy, Web Services Description Language Tool (Wsdl.exe)



Impressões do evento Tech.Ed Brasil 2010

por Thiago Nishio 22. setembro 2010 17:37

Fala pessoal!

Entre os dias 13 a 15 de setembro, aconteceu no Expo Center Norte o maior evento técnico da Microsoft no Brasil, o Tech.Ed Brasil 2010. Foram diversas palestras técnicas de alto nível com o pessoal mais fera no mundo Microsoft. Teve a presença da equipe de funcionários da Microsoft, além de MVPs de diversas áreas do mercado.

As palestras técnicas foram muito proveitosas, os palestrantes do Tech.Ed são mesmo feras. Aprendi muita coisa, melhorei muito o meu conceito sobre as ferramentas da Microsoft. Aqui na Aspbrasil estou aproveitando um pouco desta euforia tecnológica para conseguir avaliar o que poderei aplicar no nosso dia a dia de desenvolvimento.

Quer uma ferramenta para o gerenciamento e para o desenvolvimento de aplicativos em equipe, com controle das tarefas, processos, testes de software e o mais importante, proteger o seu código-fonte? Assisti a todas as palestras sobre o Microsoft Team Foundation Server 2010 (TFS 2010) e comprovei que o controle do desenvolvimento de aplicativos pode realmente alcançar um patamar mais profissional sendo auxiliado por essa ferramenta. O que mais me empolgou sobre o TFS 2010 foi o controle de versão de arquivos de projeto, substituindo o antigo Visual SourceSafe. Realizei testes aqui na Aspbrasil utilizando o Visual Studio 2010 Premium e demonstrou ser um recurso robusto e de fácil utilização, pude facilmente controlar o chech-in de alterações e consegui identificar quem da equipe realizou a alteração e é possível vincular esta alteração à uma tarefa específica que o gerente do projeto criou, possibilitando o maior controle do desenvolvimento pelo gerente. É também possível gerenciar a versão de uma pasta e seus arquivos dentro do Windows Explorer, aumentando o leque de alternativas de uso desta ferramenta.

Outro recurso do Visual Studio 2010 que achei fantástico foi o teste de software, foram 150 minutos de demonstrações que me deixou com vontade de implantar esta ferramenta no nosso processo de testes. Só para exemplificar um dos diversos usos desta ferramenta do Visual Studio 2010 com TFS 2010, podemos facilmente criar um roteiro de testes de software e criar um ambiente de testes dentro de uma máquina virtual. Este roteiro de testes vira um checklist para o membro da equipe de testes. Os passos que este membro da equipe realizou dentro do ambiente de testes pode ser reutilizado para criar testes automáticos, podemos agendar uma data e horário que a ferramenta repete os passos que o membro da equipe de testes realizou de forma autônoma e automática. Mais informações sobre o TFS 2010 você encontra em http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx.

Presenciei o lançamento do Microsoft Internet Explorer 9 beta e assisti a demonstração de diversos recursos novos da nova versão do Windows Live Hotmail, recursos que facilitarão a vida de quem utiliza este produto no dia a dia. Um recurso que realmente faltava no Hotmail era conseguir editar e visualizar documentos do Office sem ter o Microsoft Office instalado no PC, assim como no GoogleDocs.

Também vi e brinquei com o aparelho desenvolvido pela LG para testes do novo sistema operacional da Microsoft para dispositivos móveis, o Microsoft Windows Phone 7 (WP7). Espero que este novo sistema operacional consiga melhorar a participação da Microsoft no mercado Mobile. O que me deixou fascinado foi a facilidade de desenvolvimento de telas para o WP7 utilizando o meu pouco conhecimento de Silverlight. Mais detalhes sobre o WP7 em http://www.gizmodo.com.br/conteudo/dissecando-o-windows-phone-7-um-novo-comeco. Quer desenvolver e testar algo para o WP7? Baixe em http://developer.windowsphone.com/ as ferramentas necessárias e bem vindo ao desenvolvimento Mobile para WP7. Há um emulador dentro da ferramenta, é só rodar a aplicação dentro do ambiente de desenvolvimento do Visual Studio 2010 e testar. A promessa é que tudo o que temos no Android e no iPhone poderemos fazer no WP7. No Tech.Ed 2010 eu vi várias Demos utilizando o GPS, a câmera, a plataforma de jogos (XNA), o giroscópio para detectar movimentos, entre outras funções e recursos existentes nos smartphones atuais.

Tive a sorte de ser sorteado para ser um dos 60 primeiros brasileiros fora da equipe da Microsoft para jogar com o Kinect (antigo projeto Natal). Eu vi e joguei em primeira mão os jogos Kinect Joy Ride e o Kinect Adventures. Fico só pensando como será jogar Star Wars! A primeira vez que vi no youtube um vídeo demonstrando o Kinect eu fui muito cético, não achava que este projeto iria pra frente. Mas agora que eu joguei... O meu próximo video-game será o novo modelo do Xbox 360 (Black) com Kinect! Mais detalhes sobre o Kinect em http://www.xbox.com/pt-BR/kinect.

Fiz alguns bons contatos no evento, agradeço pelas explicações técnicas do Cláucio do Tribunal de Justiça do Paraná e do Samuel do Senac de Campo Grande, Mato Grosso do Sul sobre BSC, ITIL e Cobit!

Espero que o Tech.Ed Brasil 2011 seja tão bom quanto deste ano!

Abraço a todos!



Problemas ao usar controles ASP.NET RadioButton no Repeater

por Thiago Nishio 15. setembro 2010 17:30

 

Fala pessoal!

O controle ASP.NET RadioButton tem uma propriedade chamada GroupName, que ao informar um GroupName igual a diferentes RadioButtons, permite que estes controles trabalhem em conjunto. Já o controle ASP.NET Repeater facilita o nosso trabalho quando há a necessidade de repetir um grupo de informações. Mas há um problema: todos os controles que o Repeater irá alojar, ao gerar o código HTML, ele altera o valor das propriedades GroupName  e ClientID dos controles alojados, para que não ocorra o erro de IDs repetidos. Portanto, mesmo informando um GroupName igual para diferentes controles RadioButton, o Repeater altera o valor do GroupName destes controles, inibindo o trabalho em conjunto dos controles Radiobutton.

Para resolver este problema, depois de testar algumas soluções encontradas na Web, o melhor que encontrei foi um controle customizado criado por Vladimir Smirnov.

GroupRadioButton_src.zip (6,73 kb)

Basta baixar, referenciar a DLL no seu projeto ou incluir o controle na sua Toolbox no Visual Studio/Web Developer, referenciar a DLL na sua página ASPX, incluir o namespace na ASPX.cs e sair usando o controle GroupRadioButton. Realizei o teste deste controle no Visual Studio 2010 Premium.

Abraços!

 

Fonte imagem:
http://www.zazzle.com.br/pare_o_abuso_do_botao_de_radio_simplificado_adesivo_carro-128779188962936424

Tags: , , , ,

ASP.NET | Programação




Calendário

<<  junho 2013  >>
seteququsedo
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Ver os posts em um calendário maior

Oportunidades


Para divulgar oportunidades aqui, entre em contato conosco enviando a descrição completa da vaga + uma data de validade para cada uma delas.

* As vagas divulgadas neste espaço são de inteira responsabilidade das empresas anunciantes.

Assine Nossa Newsletter

Quero ser notificado quando um novo Post for publicado