Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Session Vizualizer for Visual Studio 2005

0.00/5 (No votes)
29 Nov 2008 1  
Debug tool for analyzing Session content in web applications.

Introduction

The purpose of this tool is to let developers easily analyze Session content during debugging and also browse stored objects. For this, a simple interface was built, and a PropertyGrid control is used. In large web applications, there are situations when developers leave old objects stored in the Session, and these are disposed only when the session in ended. Using this tool, it is easy to see the Session content and improve the code that manages Session content.

Background

Visualizers are a new feature in Visual Studio 2005, and allow developers to inspect values at debug time using a graphical interface. These components can be integrated with Visual Studio, and provide extra performance in debugging specific data types.

Built-in visualizers are available for:

  • XML/HTML/Text
  • DataSet/DataTable/DataView

Using the Code

There are three main parts in writing a visualizer:

  • One that implements the IDebugVisualizer interface and runs inside the debugger process.
  • The debugee side that serializes the .NET type to be copied from the debugee process to the debugger process.
  • And, the user interface for showing the debugged object in a nice way.

printscr.jpg

For installing the visualizer, this line can be used:

copy "$(TargetPath)" "$(HOMEDRIVE)$(HOMEPATH)\
                        My Documents\Visual Studio 2005\Visualizers"

This is also used as a post-build event in the attached code to install it automatically after the project is built.

After installing, in order to use it, add the Session object in the Watch window, and click the magnifier icon.

The Session visualizer at this moment has a major drawback: the objects stored in the Session need to be serializable in order to be copied from the application process to the debugger process. Most of the websites use InProc sessions, and objects stored are not always serializable. I think I can improve this in a future version. If you have any idea for improvements, please contact me.

History

First version of this code released on Feb 4th 2008.

I will come back soon with improvements.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here