Colunas Técnicas :: Falando C#
Colunas Técnicas :: Falando C#
Debug no ASP.NET e WebServices
Por Mauro Sant'Anna (mas_mauro@hotmail.com). Mauro é um "MSDN Regional Director", consultor e instrutor da MAS Informática (www.mas.com.br), tendo ministrado treinamentos na arquitetura .NET desde outubro de 2000.
A capacidade de depurar (ou "debugar") programas é fundamental para o bom desenvolvimento de software. A tecnologia ASP.NET® possui excelentes recursos de depuração, permitindo ao desenvolvedor saber muito bem o que está acontecendo com o seu aplicativo durante a execução, de forma a eliminar erros, indo muito, muito além do que havia disponível antes no ASP tradicional.
Existem basicamente duas capacidades distintas: "debug" e "trace". Neste artigo examinaremos as várias possibilidades de debug usando o Microsoft Visual Studio .NET® Beta 2. Um outro artigo tratará do "trace".
Debug
O Debug é voltado para executar os programas em um ambiente de testes, onde podemos executá-los passo-a-passo, examinar valores de variáveis e expressões e alterar variáveis.
Para rodar um programa ASP.NET passo-a-passo, não precisamos fazer muita coisa: basta colocar "breakpoints" nos locais do programa que queremos examinar com a tecla F9 e rodar o programa com a tecla F5. O Internet Explorer será aberto e quando chegar no local do breakpoint, o Visual Studio será chamado com o programa parado no ponto desejado. Uma vez parado, temos várias opções, como por exemplo:
Executar sem "entrar" nas funções com a tecla F10;
Executar "entrando" nas funções com a tecla F11;
Continuar executando até o próximo breakpoint com a tecla F5;
Examinar e alterar variáveis.
Exemplo
Criaremos um aplicativo simples em ASP.NET usando a linguagem Visual Basic .NET:
Ao formulário criado acrescentarei dois TextBox, um Button e um ListBox:
Dando um clique duplo no botão, acrescentamos o seguinte código:
Dim N1 As Double = TextBox1.Text Dim N2 As Double = TextBox1.Text Dim R = N1 + N2 ListBox1.Items.Add(R)
O código acima tem um erro de lógica. Para "descobri-lo", usaremos os recursos de debug. Coloque um breakpoint na primeira linha do método movendo o cursor para lá e pressionando F9. Note que a linha fica destacada em vermelho. Podemos visualizar todos os breakpoints clicando "Ctrl+Alt+B" para exibir uma janela específica:
Clique F5 para rodar o programa em modo de debug. Entre números no navegador, por exemplo 10 e 30 e clique no botão "Soma":
Note que o Visual Studio .NET será chamado e o breakpoint exibido:
Veja os valores depois de pressionar F10 por duas vezes:
Para alterar um valor, basta clicar sobre ele e digitar um valor novo:
A janela inferior de depuração pode exibir "Autos", "Locals" e vários "Watches". A janela "Autos" contém os valores usados na função atual:
Você pode clicar sobre o valor das variáveis e alterá-lo diretamente.
A janela "Locals" contém as variáveis locais, argumentos das funções e campos. Note que os valores podem ser expandidos para revelar maiores detalhes:
As janelas "Watches" permitem colocar qualquer expressão para ser visualizada. Note que você pode colocar praticamente qualquer expressão, não apenas simples variáveis:
Para terminar o modo de depuração, clique F5 de forma a continuar a execução do aplicativo e depois feche o Internet Explorer. Você pode também interromper a depuração teclando "Shift+F5".
WebServices
Os mesmos recursos de depuração disponíveis em aplicativos ASP.NET estão disponíveis para WebServices. Vamos acrescentar uma WebService ao nosso projeto já existente pedindo "Project | Add Web Service...":
Entre o código do WebService, por exemplo:
<WebMethod()> Function Soma(ByVal a As Double, ByVal b As Double) As Double Soma = a + b End Function
A depuração é feita da mesma forma que anteriormente: colocamos um breakpoint com F9 e rodamos o programa com F5. Não se esqueça de definir WebService1.asmx como "Start Page" clicando com o botão direito e selecionando:
Você pode rodar o programa com F5. Neste caso, uma página de testes será criada:
Clique em "Soma" e entre dois números:
Clique em "Invoke". O Visual Studio.NET será chamado:
Os demais comandos de depuração são os mesmos dos aplicativos ASP.NET "normais". Você pode também criar um aplicativo cliente, colocar o breakpoint no cliente, pressionar F11 e a execução passo-a-passo continuará dentro do WebService!
Conclusão
A dificuldade de depuração de programas ASP era uma das grandes reclamações dos programadores ASP. No ASP.NET este quadro mudou imensamente, pois usando o Visual Studio .NET temos todos os recursos normalmente associados à depuração de aplicativos Visual Basic ou C++, só que para programas Web.
Faça o download deste documento:
Debug no ASP.NET e WebServices
formato Word, 583 Kb