Microsoft Ajax Beta1 - 边学边用边补充 (Part 1 - Debug)
2006-10-27 01:31 Cat Chen 阅读(1465) 评论(0) 编辑 收藏 举报这Beta1的更新多就不再强调了,关键就是它对以客户端为中心的开发人员不太友善。客户端框架正在作大幅度修改,这个我不反对,但是将明显一个修改到一半的东西扔出来显然就不太好。Beta1里面的客户端框架是没问题的,不过Preview中的就衔接不上了,有些CTP原有的功能没有在Preview中保留,有些则看得出是修改中的,例如debug版的代码不太工整,enclosure和prototype书写方式混合。
将老项目由July CTP迁移到Beta1 + Preview,第一件事当然是测试更新后原有功能是否正常,不正常的地方是由什么引起的,但我马上就发现可爱的debug.dump和debug.trace都不见了,这样我可没办法做项目迁移啊,因为连基本的debug功能都没有。搜索了一下Beta1的代码,发现只有debug.assert和debug.fail;而在Preview中则有如下一段代码:
if(!debug.trace) {
debug.trace = function debug$trace(message) {}
}
这段代码的用意很显然,debug.trace已经被去掉了,然而CTP迁移而来的代码中可能有用到debug.trace的,这样做能避免对debug.trace的调用引发脚本错误。
为了完成迁移,首先要把debug.dump和debug.trace补上,尝试的就是把July CTP的代码借过来用。代码借过来后,debug.trace基本没问题,就是第一行那个Debug.writeln不知道用来干什么的;debug.dump的问题就一大堆,这是由于一些CTP中存在的类改名了或消失了,例如Sys.IArray、Sys.ITypeDescriptorProvider、Type.Event。我开头的做法是把debug.dump中不能用的代码段注释掉,后来Jeffrey Zhao在为ASP.NET AJAX 1.0 Beta补充trace和dump功能一文中提供了一个更好的版本,我也就参考着那个作了修改,制作出我自己的版本:用于MS AJAX Beta1 + Preview的debug补充包。
由于我还没有仔细看过Beta1的原代码,所以采用了保守修改的原则,也就是尽可能少的改动。因此,我仅仅作了如下替换:
- Sys.IArray.isImplementedBy -> Array.isInstanceOfType
- Sys.ITypeDescriptorProvider -> Sys.Preview.ITypeDescriptorProvider
- Type.Event-> Sys.UI.DomElement
需要说明的是,Jeffrey Zhao那个适用于不加载PreviewScript.js的场合,而我的这个必须和PreviewScript.js一起使用并且在其之后加载。另外为了方便我直接在浏览器地址栏调用debug.dump和debug.trace,我为它们提供了更简短的别名:$dump和$trace。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构