代码改变世界

随笔分类 -  Web

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

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

AJAX 在中文社区的“集体信仰动摇”?!

2006-12-03 16:37 by Cat Chen, 4338 阅读, 收藏, 编辑
摘要: 最近好像在中文社区又多了关于AJAX的讨论,很多都是说AJAX仅仅是过渡技术,又或者说AJAX现在有些滥用了,反正就好像一场狂热下来大家又成了怀疑论者了。Microsoft Expression看起来最震撼的事情应该是Microsoft Expression系列被越来越多人知道,很多人都在想WPF在如此强大的设计器支持下能否干掉AJAX。首先说一下Microsoft Expression是什么,这... 阅读全文

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

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

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

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

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

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

从 ASP 到 ASP.NET (Part 2 - 忘记什么)

2006-11-17 02:24 by Cat Chen, 2229 阅读, 收藏, 编辑
摘要: 前言上一边讲到ASP程序员迁移到ASP.NET时,应该顺应Web开发的潮流学习Web Standards,应该为了更好的理解ASP.NET而学习OOP,然而学习这些知识之后并不代表你就是一个合格的ASP.NET程序员了,因为你仍被ASP的思想所束缚,接下来我要告诉你如何解决这些束缚。比喻首先我们要看看ASP.NET是如何“确保”你被继续禁锢在ASP的思想内的。假如我把ASP... 阅读全文

ASP.NET - 解决一个大难题的同时引入另一个更大的难题

2006-11-11 02:19 by Cat Chen, 3938 阅读, 收藏, 编辑
摘要: 前言 ASP.NET的优点我说过很多次了,也就是各个控件独立负责自己内部的逻辑,这是一个好事情,因为它解决了原本ASP处理逻辑耦合度高的问题。然而这是需要代价的,那就是引入ASP.NET页面生命周期,随着控件的多层嵌套,应用的复杂度增加,我们再次陷入泥潭! 问题 其实这个文章题目我两个月前就写下了,可是一直没想写完它,直到今天我在这个泥潭中泡了几个小时,于是决定先从泥潭中跳出来把文章写完,再跳进去... 阅读全文

从 ASP 到 ASP.NET (Part 1 - 学习什么)

2006-11-09 15:28 by Cat Chen, 2328 阅读, 收藏, 编辑
摘要: 前言首先要告诉大家,文章标题是我“恶意删改”了,原本是《从熟练的ASP程序员到熟练的ASP.NET程序员》。从ASP迁移到ASP.NET的程序员肯定不少,我就是其中一个,然而要从熟练的ASP程序员转变为熟练的ASP.NET程序员并不容易,这不仅仅要求你学习非常多的新东西,还要求你丢弃非常多的旧东西。对于没学过ASP的人来说,或许这还容易些,因为他们本来就做好了苦学的准备,也... 阅读全文

深入理解 ASP.NET 动态控件 (Part 2 - 编译过程)

2006-11-05 20:55 by Cat Chen, 8583 阅读, 收藏, 编辑
摘要: 前言 要深入理解ASP.NET动态控件,首先就要深入理解整个ASP.NET对页面的处理过程,由你书写好一个ASPX文件(可能还有一个code-behind文件)到你在浏览器中看到的HTML页面,这中间到底发生了什么事。这其中的第一步就是解释ASPX文件并进行编译,也就是这篇文章要讨论的内容。 由于ASP.NET编译本身就是一个大话题,所以我决定在本系列文章把这个题目再细分成几篇文章来写。开头第一篇... 阅读全文

Microsoft Ajax Beta1 - 边学边用边补充 (Part 4 - $create)

2006-11-04 01:17 by Cat Chen, 2964 阅读, 收藏, 编辑
摘要: 在Beta1之前,我们可以使用Xml-Script定义对象,当然也可以用JavaScript的老方式来定义对象,不过用过后者的人肯定会觉得这种方式不太方便,因为大多数Control和Behavior都需要手动调用initialize后才能正常运作。例如CTP中的Button,不执行initialize就不会绑定DomElement的click事件,它自身的click事件也就不能被正常触发。还有be... 阅读全文

Microsoft Ajax Beta1 - 边学边用边补充 (Part 3 - ITemplate)

2006-11-01 21:18 by Cat Chen, 2217 阅读, 收藏, 编辑
摘要: 首先,使用ITemplate的例子大家可以在Dflying那里找到一些: 使用ASP.NET Atlas实现拖放(Drag & Drop)效果(下) 使用ASP.NET Atlas ListView控件显示列表数据 这些例子当中,ITemplate都不是显式声明的。我们仅仅是在xml-script中制定了以某一个DomElement为基础生成一个ITemplate,但是ITemplate不... 阅读全文

深入理解 ASP.NET 动态控件 (Part 1 - 感性认识)

2006-10-31 13:55 by Cat Chen, 9164 阅读, 收藏, 编辑
摘要: 正如我在《我喜欢的教材与我讨厌的教材》中所说的,我讨厌那种标题之后直入理论部分并开始写“定理1、定理2、定理3”的做法,所以在我自己的文章也绝对不会这样写。我认为感性认识是理性认识不可缺乏的基础条件,所以在很理论性的解释ASP.NET页面生命周期之前,先通过一些大家可能都遇到过的例子给大家一个感性认识。 动态控件遇到的第一类问题就是跨页面生命周期时无法自动保存,你必须每次手动创建。举个简单的例子,... 阅读全文

扩展 Atlas 的客户端 Web Service 调用功能

2006-10-30 11:49 by Cat Chen, 2882 阅读, 收藏, 编辑
摘要: Jeffrey Zhao最近在写客户端调用WebService的有关内容,那么我也来说说。Jeffrey Zhao说到了,Beta1中只有一个onComplete,onTimeout、onError、onAborted都没有了,这3个事件都整合到onComplete中,使用者需要自己在onComplete中手动判断到底属于哪个情况。另外Jeffery Zhao最近在讨论继承WebRequestEx... 阅读全文

深入理解 ViewState

2006-10-29 17:40 by Cat Chen, 9044 阅读, 收藏, 编辑
摘要: 上个星期写了一篇《控件 ViewState 属性的值保存去哪里了》,解释了Control.ViewState最终还是通过Control.SaveViewState和Control.LoadViewState这两个方法存取的。文章中有一句话可能会让大家感到疑惑的:“我们在OnInit之后使用this.ViewState[key]读写时该属性都为true”,其中“该属性”指StateItem.IsDi... 阅读全文

Microsoft Ajax Beta1 - 边学边用边补充 (Part 2 - DragDropList)

2006-10-27 02:21 by Cat Chen, 1597 阅读, 收藏, 编辑
摘要: 由于我在做一个类似Live.com的东西,所以需要类似WebPart的功能。我不清楚Atlas扩展的那个所谓的Cross Browser WebPart到底是什么,支持如何,所以不敢去尝试,从而决定用DragDropList。首先,关于如何使用DragDropList,可以参考Dflying的以下两篇文章: 使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上) 使用A... 阅读全文

Microsoft Ajax Beta1 - 边学边用边补充 (Part 1 - Debug)

2006-10-27 01:31 by Cat Chen, 1459 阅读, 收藏, 编辑
摘要: 这Beta1的更新多就不再强调了,关键就是它对以客户端为中心的开发人员不太友善。客户端框架正在作大幅度修改,这个我不反对,但是将明显一个修改到一半的东西扔出来显然就不太好。Beta1里面的客户端框架是没问题的,不过Preview中的就衔接不上了,有些CTP原有的功能没有在Preview中保留,有些则看得出是修改中的,例如debug版的代码不太工整,enclosure和prototype书写方式混合... 阅读全文

ASP.NET AJAX Beta1 发布

2006-10-22 15:47 by Cat Chen, 793 阅读, 收藏, 编辑
摘要: Atlas在7月的CTP之后就几个月没有更新了,当然就意味着之后会来一个大更新,这就是ASP.NET AJAX Beta1。ASP.NET AJAX Beta1将原来的CTP拆分为两个部分:1.0核心和增值CTP,同时原来的Atlas Control Toolkit也改名为ASP.NET AJAX Control Toolkit了。上述3个下载都已经更新了,然而要把老的Atlas项目迁移到新版本则... 阅读全文

控件 ViewState 属性的值保存去哪里了

2006-10-22 15:45 by Cat Chen, 2543 阅读, 收藏, 编辑
摘要:  看过MSDN的都知道,存取ViewState有两种方法: 直接操作控件的ViewState属性,通过this.ViewState[key]就可以直接进行读写。 重写控件的LoadViewState和SaveViewState方法。在LoadViewState中系统会将此控件以ViewState保存的信息作为一个object类型参数传入,控件需要自己将信息unboxing出来。在Save... 阅读全文

AJAX - 服务器端也用 JavaScript 不好吗?

2006-10-22 15:44 by Cat Chen, 1578 阅读, 收藏, 编辑
摘要: 现在ASP.NET要实现AJAX已经不难了,可以用同时有服务器端扩展和客户端框架的Atlas,也可以选一个Atlas之外的服务器端JSON串并转换器和支持JSON-RPC的客户端框架。类似的,PHP等现在热门的语言都有服务器端JSON串并转换器,唯独已被人放弃的ASP没有,所以很多人都为如何在ASP上实现AJAX而感到困惑。 要在ASP实现AJAX,首先考虑的是用什么数据格式进行传输,主流的选择就... 阅读全文