Sunday, May 01, 2005

I was intrigued, as many were, with Mohammed Barqawi's DataSet QwickWatch add-in over on The Code Project.  The thought of leveraging the expression evaluator to populate a form for visualization purposes during a debugging session was compelling and, over the holidays, I decided to see how far I could take the idea.  As it turns-out, it is actually quite amazing how much you can do with strings and an AppDomain.CurrentDomain.Load() call!  Once I had this nut cracked, everything else fell-together pretty quickly and after a few weeks of furious coding and a small round of beta testing, I decided to release the XML Visualizer for Visual Studio .NET 2003 (XMLVIZ) to a (much!) larger audience.

 

WHAT DOES XMLVIZ DO?

Basically, XMLVIZ allows you to visualize most XML and XML-backed data sources during runtime a la Whidbey's "debugger visualizers".  The difference is you don't have to wait for VS.NET 2005 because XMLVIZ will work with your copy of VS.NET 2003 today!  XMLVIZ is implemented as a VS.NET add-in and, once installed, is activated by highlighting any supported, initialized type instance during a debugging session, right-clicking on the selection to bring-up the context menu, and selecting the "XML Visualizer" menu item.  The add-in will then grab the XML out of the selected target instance and display it on a modal dialog along with the schema (if available).  For ADO.NET types, the data is also bound to a grid to allow navigation, row-filtering, and row version inspection.  

 

WHAT TYPES CAN I VISUALIZE?

Currenly XMLVIZ supports the following types (including derived types thereof):

 

DataSet,

DataTable (including detached tables),

DataRow/DataRow[]/DataRowCollection (attached rows only),

DataView (including DataViews over detached tables),

DataRowView/DataRowView[] (attached rows only),

DataViewManager,

Exception,

XPathNavigator,

types implementing IXPathNavigable,

well-formed XML in strings,

any XML-serializable type

 

To give you a better idea, here are some screenshots of XMLVIZ in action: