代码改变世界

为ASP.NET AJAX 1.0 Beta补充trace和dump功能

2006-10-24 11:01  Jeffrey Zhao  阅读(2690)  评论(15编辑  收藏  举报
  昨天晚上(或者说今天凌晨)在和cathsfz聊天时,他抱怨ASP.NET 1.0 Beta居然将客户端的Debug能力大大减弱了,window.debug对象目前只剩下了fail和assert功能,这让像他这样以客户端开发为中心的朋友觉得非常不满。

我看了一下相关代码,将以前Atlas.js中trace和dump功能另外写了一个Debug.js文件,可以作为ASP.NET AJAX 1.0 Beta的扩展。

和Atlas.js中的dump功能相比,Debug.js文件中的dump做了以下修改:
  • 使用基于prototype的扩展方式。
  • 改变了一些特殊类型对象的判断方式。
  • 将部分Sys.*的客户端功能使用Sys.Preview.*的客户端功能替代(会判断Value-add包有没有引入),以兼容CTP的类库。
  • 增加对于RTM版本中新的Type Descriptor模型的支持。
  • 不dump部分类型(例如Sys.UI.DomElement)的对象,以避免出现过多信息或死循环。
  在使用时,只需要引入Debug.js即可。例如下面将Value-add包与Debug.js文件一起引入了。
<asp:ScriptManager ID="ScriptManager1" runat="server">
    
<Scripts>
        
<asp:ScriptReference Assembly="Microsoft.Web.Preview"
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewScript.js"/>
        
<asp:ScriptReference Assembly="Microsoft.Web.Preview" 
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewGlitz.js"/>
        
<asp:ScriptReference Assembly="Microsoft.Web.Preview" 
            Name
="Microsoft.Web.Resources.ScriptLibrary.PreviewDragDrop.js"/>
        
<asp:ScriptReference Path="Debug.js" />
    
</Scripts>
</asp:ScriptManager>

这样,RTM版本就同样具有CTP版本中的trace和dump能力了,使用方式也和之前相同。如果您在使用过程中发现任何问题,请马上通知我。谢谢。:)

点击这里下载Debug.js文件。