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:

col_falc_8_01.jpg

Ao formulário criado acrescentarei dois TextBox, um Button e um ListBox:

col_falc_8_02.jpg

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:

col_falc_8_03.jpg

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":

col_falc_8_04.jpg

Note que o Visual Studio .NET será chamado e o breakpoint exibido:

col_falc_8_05.jpg

Veja os valores depois de pressionar F10 por duas vezes:

col_falc_8_06.jpg

Para alterar um valor, basta clicar sobre ele e digitar um valor novo:

col_falc_8_07.jpg

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:

col_falc_8_08.jpg

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:

col_falc_8_09.jpg

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:

col_falc_8_10.jpg

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...":

col_falc_8_11.jpg

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:

col_falc_8_12.jpg

Você pode rodar o programa com F5. Neste caso, uma página de testes será criada:

col_falc_8_13.jpg

Clique em "Soma" e entre dois números:

col_falc_8_14.jpg

Clique em "Invoke". O Visual Studio.NET será chamado:

col_falc_8_15.jpg

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

GR1660.gif formato Word, 583 Kb