
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 for
DataSets, strongly typed DataSets, DataTables, DataViews, DataRows and DataColumns.
- 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 a
DataRow, the respective row will be selected in the visualizer's grid.
- XML representation of the
DataSet can be in the format generated by the XmlSerializer (as used by the Web Service framework, for example) or by the DataSet's WriteXmlSchema and WriteXml 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\Visualizers directory as part of the build. To remove it, delete the DotNetDan.Visualizers.dll file.
- Multi-threading is used to load the visualizer form at the same time as serializing across 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 the
DataSet and DataTable objects for enhancing the performance of serializing the objects across the Debuggee and Debugger processes.
- At the time of writing, the
DataGridView control wasn't particularly well documented 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 a
DataGridView (or DataGrid) is still way too hard. It requires a combination of DataViews, BindingSources and brute force. See DataTableVisualizerTab.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 of the DataTableProperties object for its binding.
- I intend to look at enabling modifications to the data in the near future. Oh yeah, and improve the icons. :)
| You must Sign In to use this message board. |
|
| | Msgs 1 to 10 of 10 (Total in Forum: 10) (Refresh) | FirstPrevNext |
|
 |
|
 |
To use the visualizer with visual studio 2008, update the reference for DebuggerVisualizers from version 8.0.0 to 9.0.0 and recompile.
|
| Sign In·View Thread·PermaLink | 5.00/5 (3 votes) |
|
|
|
 |
|
 |
In other words, remove the Microsoft.VisualStudio.DebuggerVisualizers reference and replace it with the new Microsoft.VisualStudio.DebuggerVisualizers (9.0.0) reference.
(Sorry if I'm being too obvious, but took me a while to understand the previous statement)
|
| Sign In·View Thread·PermaLink | 1.00/5 (1 vote) |
|
|
|
 |
|
 |
I have a dataset with over 70 datatables. The tab topology needs to be changed to a dropdown list. It's hard to find the datatable I need. The tabs aren't even sorted by tablename.
|
| Sign In·View Thread·PermaLink | 1.00/5 (2 votes) |
|
|
|
 |
|
|
 |
|
|
 |
|
 |
I built the code and the dll was copied to the visualizers directory. Then, there is no way I can find the window when debugging.
Did I miss any steps?
Thanks Hongze
|
| Sign In·View Thread·PermaLink | 2.14/5 (7 votes) |
|
|
|
 |
|
|
 |
|
 |
yes, a dataset has its own visualizer, but anyway its a good example for writing your own visualizer! good work!
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
 |
Even though windows ships with the notepad text editor, there's a market for something more powerful. I happen to think the default DataSet visualizer in Beta 2 is lacking in a few important areas. And I have started to address those in this implementation (see the list above).
We'll have to wait and see what ships with the final product. If I still think there's room for something better I will keep improving this one.
|
| Sign In·View Thread·PermaLink | 2.00/5 (1 vote) |
|
|
|
 |
|
 |
The RTM version hasn't improved much and even crashes when the dataset contains a deleted row. I've disabled it. For those who want to take the same route, you can find it here:
%program files%\Microsoft Visual Studio 8\Common7\Packages\Debugger\Visualizers
|
| Sign In·View Thread·PermaLink | 3.33/5 (3 votes) |
|
|
|
 |
|
|
General
News
Question
Answer
Joke
Rant
Admin