Introduction
These data visualizers for Visual Studio 2005 extend the special quickwatch for a dataset that I found invaluable in vs 2003.
What it does?
These visualizers provide the following features:
- Visualization
DataSet
S, stronugly typedDataSet
S,DataTable
S,DataView
S,DataRow
S andDataColumn
S.
- Modified rows display in red.
- Modified cells display in bold red.
- Added rows display in blue.
- If deleted rows exist, they can be viewed by selecting the deleted rows radio button.
- A row filter can be established for active or deleted rows, using standard row filter expressions.
- Additional cell and row properties display in the bottom grid. These properties are: cell original value, cell error message, row state, row error message.
- When visualizing
DataRow
, The respective row will be selected in the visualizer's grid.
- XML Representation of
DataSet
Can be in the format generated byXmlSerializer
(As used by the web service framework, for example) or byDataSet
'SWriteXmlSchema
AndWriteXml
Methods.
Using the code
For now, I'll leave examination of the Code as an exercise for the reader.
Technical notes
- The Visualizer DLL file is installed into your[Vs8] \ common7 \ packages \ debugger \ visualizersDirectory as part of the build. To remove it, deleteDotnetdan. visualizers. dllFile.
- Multi-threading is used to load the visualizer form at the same time as serializing processing ss the data from the debuggee to the debugger process. this may not be the fastest technique on non-hyperthreaded single-CPU machines, and complicates the code, so is a potential refactor target.
- The visualizers use the new binary remotingformat facility of
DataSet
AndDataTable
Objects for enhancing the performance of serializing the objects processing ss the debuggee and debugger processes.
- At the time of writing,
DataGridView
Control wasn't maid well defined ented and so getting the styles right was of more effort than expected and may not be the best way.
- Programmatically selecting a row inside of
DataGridView
(OrDataGrid
) Is still way too hard. It requires a combinationDataView
S, bindingsources and brute force. SeeDataTableVisualizerTab.OnVisibleChanged
For the code that does the trick.
- The bottom "Grid" that displays additional cell and row properties consists of text boxes and uses the. NET 2.0
IPropertyChange
Interface ofDataTableProperties
Object for its binding.
- I intend to look at enabling modifications to the data in the near future. Oh yeah, and improve the icons.
-
<SPAN class = "code-keyword"> from: <a href = "http://www.ueow.com/"> http://www.ueow.com </a> </span> |