代码改变世界

随笔分类 -  ASP.NET

英语阅读推荐:在AJAX中制作自定义验证服务 & 优秀网站的5个因素

2007-03-16 20:08 by Cat Chen, 5444 阅读, 收藏, 编辑
摘要: 新一期的Random Clippings又来了,这次介绍的两篇文章都很容易读,单词不会太难,语法也简单。在AJAX中制作自定义验证服务 (Building a custom authentication service in AJAX)在这篇文章中我们将学会如何制作一个自定义的验证服务,用于ASP.NET AJAX。为什么需要制作自定义的验证服务呢,ASP.NET AJAX不是内置一个了吗?因为那... 阅读全文

什么样的 Code 更像是 Configuration

2007-03-14 00:31 by Cat Chen, 8843 阅读, 收藏, 编辑
摘要: 在Code is Configuration这篇文章中,说到了我对Ruby on Rails优点的理解,那就是RoR的代码相当于是配置,所以能做到习惯优于配置。有人说,这是动态语言的优点,然后把动态语言和静态语言区分开来讨论各自的优劣,然而我觉得这是不能绝对划分的,语言的动态与静态是一个过渡。举个例子,virtual函数的override也算是一种动态,因为程序是运行时查表寻找最顶层的overri... 阅读全文

Code is Configuration

2007-02-24 10:44 by Cat Chen, 9710 阅读, 收藏, 编辑
摘要: Ruby on Rails强调Convention over Configuration,也就是习惯优于配置,这对我来说是一个很有吸引力的特性。.NET是配置优先的(据说Java也是),最好什么都不是硬编码而是可配置的,开发出来的产品最终可以在部署时根据实际情况配置,或者再被调用时按照调用者的需求配置。为什么RoR可以是习惯优于配置呢?如果什么都硬编码了,遇到需要改动的情况怎么办?按照我现在对Ro... 阅读全文

IIS7 会重用那些不该重用 HttpHandler

2007-02-12 23:31 by Cat Chen, 10094 阅读, 收藏, 编辑
摘要: 首先,实现IHttpHandler时要实现一个IsReusable的属性,这个属性告诉ASP.NET此HttpHandler是否可重用。如果一个HttpHandler是可重用的,那么多次请求都有可能用同一个HttpHandler实例;而如果一个HttpHandler是不可重用的,那么ASP.NET应该确保每次请求使用的都是一个新构造的HttpHandler实例。Page是设计为不可重用,所以每次请... 阅读全文

十分钟内学会:将HTML格式化为合法的XML

2007-02-07 12:14 by Cat Chen, 9343 阅读, 收藏, 编辑
摘要: Question在网站中需要引入来自外部的HTML,这是很正常的事情。例如允许用户采用HTML直接发表时,或者聚合外部的Feed时,这时候外部的HTML就直接嵌入到我们的代码中。如果我们的网站是设计为符合XHTML的,那就可能因为引入外部HTML而破坏掉XHTML的合法性,甚至连合法的XML都做不到。这时候我们就需要将外部的HTML格式化为合法的XML,以方便我们的处理。Answer要将HTML转... 阅读全文

ASP.NET 无法确保在注册的 JavaScript 内不存在重复定义

2007-01-28 00:13 by Cat Chen, 7030 阅读, 收藏, 编辑
摘要: 在ASP.NET 2.0中,我们使用Page.ClientScript属性(也就是一个ClientScriptManager对象)的一些名字以Register开头的方法注册客户端脚本,这是大家都知道的。理论上应该如何避免冲突先说说为什么要这样注册脚本,而不用Response.Write直接输出。举个例子,你用3个DropDownList做了一个输入日期的区域,分别代表年/月/日,然后你为了防止用户... 阅读全文

英语阅读推荐:使用AJAX+WF+LINQ制作Google IG式首页

2007-01-16 01:28 by Cat Chen, 8457 阅读, 收藏, 编辑
摘要: 如果你既想学习ASP.NET AJAX,又想学习Windows Workflow Foundation,还想学习LINQ(包括DLinq和XLinq),能够一次过满足你三个愿望的除了Kinder出奇蛋就是本期Random Clipping重点推荐的这篇文章了。Build Google IG like Ajax Start Page in 7 days using ASP.NET Ajax and ... 阅读全文

英语阅读推荐:基于AJAX的ASP.NET聊天室 & 如何建立共识

2007-01-03 22:41 by Cat Chen, 9933 阅读, 收藏, 编辑
摘要:  基于AJAX的ASP.NET聊天室 (Building an AJAX based chat room in ASP.NET)这是一篇从技术角度来说非常入门级的文章,别看到标题又是AJAX又是chat room,就以为用到了Atlas和HttpHandler之类复杂的东西,实际上它仅仅使用了XMLHttpRequest和Page。这就降低了读者所需要跨越的技术门槛,即使你平常只是使用P... 阅读全文

十分钟内学会:根据数据库生成站点导航

2006-12-29 22:28 by Cat Chen, 8143 阅读, 收藏, 编辑
摘要: Question上次的《十分钟内学会:存储在二维表的树结构如何进行指定深度节点的查询》提到用树结构表示无限分级的商品分类或论坛板块,也就是说这种树结构常常用于存储与导航相关的信息,该如何让网站导航自动按照数据库中存储的树结构自动生成呢?Answer继承自SiteMapProvider要实现站点导航,在ASP.NET 2.0中最方便的就是SiteMap功能了。如果仅仅使用XmlSiteMapProv... 阅读全文

英语阅读推荐:美化文件上传框 & 无刷新文件上传

2006-12-23 01:09 by Cat Chen, 9938 阅读, 收藏, 编辑
摘要: 相信很多使用过GMail的读者都会觉得它的文件上传功能作得好,首先它支持无刷新上传,其次它能够隐去丑陋的文件上传框。本期的Random Clipping重点推荐两篇与上传有关的英语技术文章,希望对大家制作一个GMail那样的上传界面有所帮助。美化文件上传框 (Styling an input type="file")"Of all form fields, the file upload fiel... 阅读全文

英语阅读推荐:海明威写作技巧 & UpdatePanel为何失灵

2006-12-15 01:25 by Cat Chen, 4646 阅读, 收藏, 编辑
摘要: Random Clippings作为一个英语阅读推荐栏目,目标是让大家多读好文章,从而提高自己的英语阅读水平,不过却不一定要限制在英文技术文章内吧,所以我这次尝试推荐点别的东西。海明威写作技巧 (Ernest Hemingway’s Top 5 Tips for Writing Well)这篇文章来自copyblogger,这是一个有趣的博客,它的理念是好像写广告文案(copywrit... 阅读全文

十分钟内学会:存储在二维表的树结构如何进行指定深度节点的查询

2006-12-12 00:36 by Cat Chen, 10357 阅读, 收藏, 编辑
摘要: Question 在设计ASP.NET网站时,无限分级的商品分类或者论坛板块都可以使用树结构表示,存放到关系型数据库时大家也懂得用Id和ParentId两个字段来表示节点间的关系。 然而这种最省存储空间的表示方法却不是最有效率的,在需要查询指定深度节点时就会遇到问题。我们需要通过递归来逐层展开才能获取到所有该层的节点,然后再在其中进行查询实在既浪费时间又浪费空间。那么有没有更好的做法呢? Answ... 阅读全文

十分钟内学会:无刷新的页面间导航

2006-12-10 14:18 by Cat Chen, 7449 阅读, 收藏, 编辑
摘要: Question 通过ASP.NET AJAX,我们能够实现页面内无刷新的异步回送。然而我们不可能将功能都放在一个页面里,这样设计非常不方便,动态加载控件的逻辑也复杂,所以还是要在多个页面间导航。可以让这种页面间的导航也无刷新吗? Answer 要页面间导航当然要刷新,这是无法避免的,但我们总不能把原本属于多个页面的逻辑塞在一个页面里吧,所以要想个办法把这些逻辑分开来。这里用到一个小技巧,就是使用... 阅读全文

深入理解 ASP.NET 与客户端缓存 (Part 2 - ASP.NET 支持)

2006-12-07 02:09 by Cat Chen, 7214 阅读, 收藏, 编辑
摘要: 在上一篇中,我们知道了HTTP属性与客户端缓存的关系,现在就可以着手用ASP.NET来控制这种缓存。需要注意的是,ASP.NET的Cache是用于服务器端缓存的,所以和我们正在讨论的事情完全无关,我们在这里要讨论的是如何通过HTTP属性控制客户端缓存。页面缓存在ASP.NET中,如果你需要添加HTTP属性,可以使用HttpResponse.AppendHeader方法,例如在Page的代码中直接执... 阅读全文

深入理解 ASP.NET 与客户端缓存 (Part 1 - HTTP 协议)

2006-12-06 21:45 by Cat Chen, 5864 阅读, 收藏, 编辑
摘要: 前言这个系列的文章要讨论的是如何通过ASP.NET服务器端技术来优化客户端缓存策略,而且让这种策略变得可配置和可扩展。我们要了解的知识从HTTP协议中相关属性对客户端缓存的影响,到ASP.NET如何控制这些属性来实现我们的缓存策略。HTTP基础知识由于讨论涉及到客户端缓存,所以还是先要简单介绍一下HTTP协议是如何控制客户端缓存的,这里涉及到HTTP头的Last-Modified、ETag等属性。... 阅读全文

对博客园 URL 的一些调整建议

2006-12-04 00:19 by Cat Chen, 4107 阅读, 收藏, 编辑
摘要: 在博客园里,每一个人的文章都有两个URL,一个是以username.cnblogs.com开头的,另一个是以cnblogs.com/username开头的(前面是否有www都可以)。默认的文章链接都是指向以后者开头的地址,而个人首页则指向username.cnblogs.com,这其实对用户的博客优化造成了很大的障碍。 搜索引擎友善 不知道什么时候开始,搜索引擎优化(SEO)成了绝对的贬义词,大概... 阅读全文

英语阅读推荐:主题切换控件 & ExpressionBuilder

2006-12-02 22:51 by Cat Chen, 3392 阅读, 收藏, 编辑
摘要: 这里是Cat in dotNET的Random Clippings系列,专门向大家推荐.NET相关的英文技术文章,每期推荐两篇文章,第一篇适合于英语技术文章阅读的入门者练习阅读能力,而第二篇则适合于进阶练习与技术学习。主题切换控件 (Theme Switcher Control)大家都用过ASP.NET 2.0的主题了吧,在为网站增加几个不同的主题后很多人都会发现了一个问题,那就是系统不提供一个控... 阅读全文

从 ASP 到 ASP.NET (Part 3 - 后记)

2006-11-24 00:09 by Cat Chen, 1998 阅读, 收藏, 编辑
摘要: 首先要说明,题目原本是《从熟练的ASP程序员到熟练的ASP.NET程序员》,不过我觉得太长了所以删减了。这篇是后记,不再会提及任何技术细节,需要说的只是如何到达“熟练”甚至是“精通”的境界。使用造就熟练在ASP.NET 2.0发布一年后才来发表这个系列的文章,距离ASP.NET 1.0发布已经有4年了,可能很多人都会觉得太晚了。其实还不算太晚吧,因为... 阅读全文

十分钟内学会:让GridView支持按行选中及多选

2006-11-21 19:34 by Cat Chen, 4045 阅读, 收藏, 编辑
摘要: Question 如何能让GridView支持选中多行?并且PostBack时要能确定哪些行有被选中哪些行没被选中。 Answer 网上关于GridView多选的实现方式的讨论也不少,有一些需要直接输出<input />并指定其name属性,或者需要通过Request.Form获取提交表单的数据,这些都解决方案都无法让我满意。我使用ASP.NET的原则就是,别人封装好的东西绝对不要伸手... 阅读全文

深入理解 ASP.NET 动态控件 (Part 3 - 页面生命周期)

2006-11-19 01:57 by Cat Chen, 10349 阅读, 收藏, 编辑
摘要: 前言 在上一篇文章中,承诺了这一篇开始讲解释器的,不过看来要按着一个大框架来写文章不那么容易,没仔细推研究过就写出来的内容似乎很应付式。所以我决定恢复我原来的写作习惯,我觉得哪部分的内容已经成熟了,那就把它release出来,没成熟的就继续留在我的draft里面。这次要讲的是页面生命周期,动态控件对此关注的当然是动态与静态控件在生命周期中加载的差别。 一般加载 虽然一般加载过程已经被说过很多次了,... 阅读全文