Data Debugger Visualizer

Sample Image - DataDebuggerVisualizer.gif

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. :)
  • 来自:http://www.ueow.com
        

转载于:https://www.cnblogs.com/junzhongxu/archive/2008/10/06/1304429.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值