本周ASP.NET英文技术文章推荐[12/10 - 12/16]
摘要
本期共有7篇文章:
- UpdatePanel和自定义控件中的客户端脚本
- MSBuild, NAnt, NUnit, MSTest所带来的不爽
- AJAX Futures December CTP:从WebService或PageMethod中返回DataSet、DataTable以及DataRow
- ASP.NET 2.0中的输出缓存
- 使用Facade设计模式管理ASP.NET中的会话变量
- 一个可行的CAPTCHA替代方案
- Web部件——如何创建选项卡样式的面板
[1] UpdatePanels and ClientScript in custom Controls(UpdatePanel和自定义控件中的客户端脚本)
ASP.NET AJAX UpdatePanel中包含了一个自定义控件,而恰好该自定义控件还需要生成一些客户端脚本,那么你就会惊奇地发现这些脚本不见了……本文就将探讨这个问题的起因,并给出相应的结果。Rick Strahl之作,大家应该有信心。
[2] MSBuild, NAnt, NUnit, MSTest, and frustration(MSBuild, NAnt, NUnit, MSTest所带来的不爽)
MSBuild, NAnt, NUnit, MSTest……相信列举出这些名字,你就能够猜到为什么作者会觉得不爽了。到底该用哪个?到底怎么用?他们之间怎么协作?这些都是问题……本文的作者也遇到了这样的问题,他将思考过程和解决方案写了出来,虽然和ASP.NET没什么关系,不过仍旧值得一读。
[3] AJAX Futures December CTP: Returning DataSets, DataTables, and DataRows from a WebService or PageMethod(AJAX Futures December CTP:从WebService或PageMethod中返回DataSet、DataTable以及DataRow)
CTP中好好的解决方案已经摆在那里了,谁知道到了Beta版本,ASP.NET AJAX居然将从WebService或PageMethod中返回DataSet、DataTable以及DataRow删除了?!(当然,还留了一小部分内容,满是Bug,为此我还特意给出了解决方案:《现存问题以及解决方案:在ASP.NET AJAX客户端得到服务器端的DataTable》和《现存问题以及解决方案:在ASP.NET AJAX中从客户端向服务器端传送DataTable》)
但令人欣喜的是,在12月份的CTP中,他们又回来了。这篇文章就介绍了如何使用最新版本的ASP.NET AJAX从WebService或PageMethod中返回DataSet、DataTable以及DataRow。再也不用我的哪种方法了!
[4] Output Caching in ASP.NET 2.0 (ASP.NET 2.0中的输出缓存)
其实没啥好说的,一篇基础文章而已。关于输出缓存的使用,也如同葵花宝典一样,搞不好了就抱恨余生……如果你还不熟悉或者没听过这个“葵花宝典”,可以看看这篇文章。当然,看完了这篇文章也不代表你就可以开始练习“葵花宝典”了。若不听从而盲目为之,后果我可概不负责啊……
[5] Manage ASP.NET Session variables using the Facade design pattern(使用Facade设计模式管理ASP.NET中的会话变量)
ASP.NET中的Session概念很简单,使用起来也很方便,简单方便的东西就容易滥用,这也是不争的事实。也正是因为使用上的简单,偶尔不小心犯的错误也很难被发现——根本想不到错误会在这里。
这篇文章就将这个Session的概念和使用方法用Facade模式包装了一下,也是设计模式的一个实例应用。看看包装后使用Session的方法吧:
// Save a session variable
MyApplicationSession.StartDate = DateTime.Today.AddDays(-1);
// Read a session variable
DateTime startDate = MyApplicationSession.StartDate;
[6] Toward Viable CAPTCHA Alternatives(一个可行的CAPTCHA替代方案)
CAPTCHA即Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动的公开图灵测试),其目的是让计算机生成区分计算机和人类的程序算法,这种程序必须能够生成并评价出人类能很容易通过但计算机却难以通过的测试。目前常见的验证图片等都属于CAPTCHA。(扫一下盲,这一段来自我将出版的《ASP.NET AJAX程序设计 第I卷》,顺便作个广告了-_-b)
作者在这篇文章中给出了一种还算不错的CAPTCHA 替代方案,有兴趣的朋友可以去看看。但是ASP.NET AJAX Control Toolkit提供的NoBot控件已经足够强大了,若是我选择,还是会直接用NoBot。
[7] Web Parts - How to create a tabbed view(Web部件——如何创建选项卡样式的面板)
Web页面上的选项卡效果比较Cool,我还在想为什么ASP.NET AJAX Control Toolkit中没有一个的时候,已经有人用Web部件加上一些客户端脚本作了出来。其实思路还是挺简单的,看看就懂了,不过实现起来,还真挺麻烦。