Debugging and Tracing in ASP.NET (1/4)
Debugging and Tracing in ASP.NET
By Utpal Chakraborty (email@example.com)
Before Web development was popular and most applications were stand alone programs
debugging strategies depended a lot on how and where they were being developed. When
developing in C/C++
printf(...) was a favorite debugging tool on both UNIX
and DOS environments for programmers. That changed when Integrated Development
Environments--IDEs--like Borland's Turbo C++ and Microsoft's Visual Studio came along.
These allowed stepping through code and watching local and global variables in a GUI as
each line of code was executed. Suddenly, debugging was much more efficient. All that
changed once again with the Web programming model. Debugging was once again much harder
and reduced to print statements. Server side debugging before Visual Studio .NET was
never up to the mark. Even with Visual Studio .NET server side debugging still does not
have all the bells and whistles that the older IDEs had while developing stand-alone
applications. On the brighter side the .NET framework comes with an enhanced library to
aid in debugging and performance monitoring that makes debugging Web applications easier
In this article we will review these classes and see how to use them. Although we specifically target Web applications in this article most of all that we will discuss applies to other programming models (like standalone programs) too. For now, we will focus on debugging and tracing. The code examples in this article will use C# but the ideas are language independent and can be used in any language that can be used to program in .NET framework.
The System.Diagnostics namespace has almost all the classes we need for debugging and tracing. All of these classes can be subdivided into five logical groups. The first group of classes is the debugging helper classes that provide useful methods to write code that is easy to debug and maintain. The second group of classes provides tracing ability. Using these classes we are able to write trace data into many different tracing systems simultaneously. The third group of classes enables interaction with the Windows event log. Using these classes it is possible to read and write to the standard event logs (Application, Security, System) defined in Windows. It is also possible to create new logs. The fourth group of classes provide the ability to do performance monitoring. The fifth and last group provide a set of classes to obtain process information.
Created: December 4, 2002
Revised: December 4, 2002