老赵点滴


  先做人,再做技术人员,最后做程序员。
  我的理想:“让外国人看中国人写的技术书籍和文章”。Try as I might
posts - 287, comments - 10551, trackbacks - 137, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2007年3月13日

posted @ 2008-07-17 15:33 Jeffrey Zhao 阅读(6202) | 评论 (133)编辑

     摘要: 对于使用User Control生成HTML的方式,大家应该已经比较熟悉了,老赵也曾经写过一篇文章(《技巧:使用User Control做HTML生成》)来描述这个做法。在“我的衣橱”中大量使用了这种生成HTML的方法。不过当项目达到一定规模之后,这个方法的不足之处也慢慢地体现了出来。如果能解决这个问题,就无疑是一个锦上添花的举动……  阅读全文

posted @ 2008-07-14 13:24 Jeffrey Zhao 阅读(5768) | 评论 (57)编辑

     摘要: 以下是包同学导给我的清单。老赵的第二轮把关很严,杀了几乎99%的文章。不过似乎有少部分并没有经过我的手,可能是其他同学转过来的吧。第三轮老赵依旧会严格把关,肯定也会杀更多(包括通过其他同学第二轮的)文章。请大家监督,有疑问请及时告诉老赵。  阅读全文

posted @ 2008-06-14 16:48 Jeffrey Zhao 阅读(11328) | 评论 (22)编辑

     摘要: 在阅读很多朋友问题的过程中,以及平时和别人讨论中,亦或是园子里的文章中经常发现一些误用概念的情况。如果在概念上没有形成共识,那么在工作和交流上就会造成许多问题。因此,老赵已觉得有必要特地来澄清一些概念,解释一下这些概念之间的区别和联系。希望在明确这些概念之后,大家能够把注意力集中在对于具体问题的分析解决上,而不要让沟通成为瓶颈。
在这篇文章中,我希望澄清三组概念,它们是:
AJAX / AJAX框架 / AJAX.NET (Professional) / ASP.NET AJAX
LINQ / LINQ to SQL / LINQ to XXX
Lambda Expression / Expression Tree / 匿名方法  阅读全文

posted @ 2008-06-04 01:51 Jeffrey Zhao 阅读(14769) | 评论 (116)编辑

     摘要: 博客园要做精华集,老赵觉得很有意思。老赵被分配到的工作是ASP.NET AJAX和ASP.NET MVC。不过事实上老赵想搞得东西很多,还有ASP.NET、.NET 3.5也想参一腿等等。不过这篇文章想和大家讨论的并不是计划,因为有些东西老赵还没有确定,所以现在只是来谈谈一些想法。  阅读全文

posted @ 2008-05-22 09:35 Jeffrey Zhao 阅读(14455) | 评论 (73)编辑

posted @ 2008-05-10 17:50 Jeffrey Zhao 阅读(12406) | 评论 (19)编辑

     摘要: 在一年多前我发布了一系列文章(让UpdatePanel支持文件上传(1)、(2)、(3)、(4)、(5)),设法让UpdatePanel支持上传文件。可惜缺陷无数,当时收到了无数bug report但是我都没有时间(和兴趣)去解决,因此只是一个实验品中的实验品。这个组件还有一个问题就在于非常复杂,复杂的原因是为了解决iframe传输数据的问题。当时想了很多办法最终让IE6、7,FireFox 1.5支持了这个组件,但是对于Safari,Opera等浏览器就无能为力了。最近发现jQuery的Form插件能够在一定程度上支持我需要的功能,于是就有了简化并改进该控件的想法。虽然后来发现jQuery在这方面的表现并不如我想象中那么好……  阅读全文

posted @ 2008-05-04 08:57 Jeffrey Zhao 阅读(16613) | 评论 (44)编辑

     摘要: 前一段时间尝试为ASP.NET MVC构建了一个类似于UpdatePanel的AJAX解决方案,本文叙述了这个组件的设计思路以及使用方式,并提供了源代码以及示例程序。  阅读全文

posted @ 2008-04-27 23:59 Jeffrey Zhao 阅读(12368) | 评论 (89)编辑

posted @ 2008-04-27 17:18 Jeffrey Zhao 阅读(5726) | 评论 (15)编辑

posted @ 2008-04-21 14:51 Jeffrey Zhao 阅读(9971) | 评论 (74)编辑

     摘要: 合理使用匿名方法能够大大简化开发,提高代码质量。您善于使用匿名方法吗?  阅读全文

posted @ 2008-04-04 00:10 Jeffrey Zhao 阅读(9690) | 评论 (103)编辑

posted @ 2008-03-24 10:17 Jeffrey Zhao 阅读(7015) | 评论 (10)编辑

posted @ 2008-03-23 23:12 Jeffrey Zhao 阅读(7184) | 评论 (7)编辑

     摘要: ORM框架在删除数据方面一直有个尴尬,那就是无法通过指定条件批量删除数据。于是对于一些删除操作,我们不得不写SQL语句或者执行存储过程。幸运的是C# 3.0所拥有的强大特性足以让我们对LINQ to SQL的功能进行扩展。为了更好地进行项目开发,以及周五的一次技术交流,我为LINQ to SQL扩展了批量删除功能。  阅读全文

posted @ 2008-03-05 13:01 Jeffrey Zhao 阅读(14429) | 评论 (62)编辑

     摘要: 异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前文《正确使用异步操作》中解释过了。对于大多数互联网应用来说,性能瓶颈数据库访问。换句话说,一个请求在数据库操作上所花的时间往往是最多的——并且占总时间的90%以上。因此,当Web应用程序的吞吐量因为数据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化。那么我们又该如何使用LINQ to SQL进行异步查询呢?  阅读全文

posted @ 2008-03-01 01:51 Jeffrey Zhao 阅读(13719) | 评论 (32)编辑

posted @ 2008-02-27 23:56 Jeffrey Zhao 阅读(11246) | 评论 (28)编辑

     摘要: 本想写一点有关LINQ to SQL异步调用的话题,但是在这之前我想还是先写一篇文章来阐述一下使用异步操作的一些原则,避免有些朋友误用导致程序性能反而降低。这篇文章会讨论一下在.NET中有关异步操作话题,从理论出发结合实际,以澄清概念及避免误用为目标,并且最后提出常见的异步操作场景和使用案例。这样我们就可以知道什么时候该使用异步操作,什么时候会得不偿失。  阅读全文

posted @ 2008-02-24 22:03 Jeffrey Zhao 阅读(11960) | 评论 (27)编辑

     摘要: 目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。  阅读全文

posted @ 2008-02-19 03:02 Jeffrey Zhao 阅读(11917) | 评论 (50)编辑

     摘要: ScottGu同学最近在Blog上发布了一些有关MIX 2008和ASP.NET MVC框架的消息。  阅读全文

posted @ 2008-02-13 17:38 Jeffrey Zhao 阅读(8238) | 评论 (24)编辑

     摘要: 在Web程序中上传文件是很常见的需求,最近忽然想到了点这方面的内容,就随便谈谈吧,希望对大家有帮助。  阅读全文

posted @ 2008-02-12 17:25 Jeffrey Zhao 阅读(12347) | 评论 (55)编辑

posted @ 2008-02-01 21:16 Jeffrey Zhao 阅读(6330) | 评论 (113)编辑

posted @ 2008-01-31 22:48 Jeffrey Zhao 阅读(3082) | 评论 (1)编辑

     摘要: 明日博客园上海俱乐部活动,老赵有幸受邀与大家一起讨论一下ASP.NET方面的问题。经过了一段时间的思考,我准备这次的主题定为“ASP.NET WebForms、MVC与MVP的演变与结合”。  阅读全文

posted @ 2008-01-26 15:51 Jeffrey Zhao 阅读(4289) | 评论 (30)编辑

posted @ 2008-01-25 01:24 Jeffrey Zhao 阅读(3076) | 评论 (57)编辑

posted @ 2008-01-24 02:11 Jeffrey Zhao 阅读(2280) | 评论 (6)编辑

     摘要: 在之前的文章里我们已经谈论了有关URL Rewrite的几个主要的方面。在本系列的最后一篇文章中,我们就来讨论一下有关不同级别URL Rewrite的一些细节与特点。  阅读全文

posted @ 2008-01-13 16:35 Jeffrey Zhao 阅读(5068) | 评论 (39)编辑

     摘要: 在进行了URL Rewrite之后,经常会遇到的问题就是页面中PostBack的目标地址并非客户端请求的地址,而是URL Rewrite之后的地址,这就将我们服务器端的URL映射规则暴露给了客户端,甚至会引起应用程序错误。这无疑不是我们所希望的,那么我们该如何避免这个情况发生呢?本文就不同层面的URL Rewrite方式分别讨论了这个问题。  阅读全文

posted @ 2008-01-13 03:17 Jeffrey Zhao 阅读(4920) | 评论 (40)编辑

     摘要: 可能已经没有人会使用上一篇文章中的方法进行URL Rewrite了,因为提供URL Rewrite的组件早已铺天盖地了。如果要我推荐,我指挥推荐两款组件,那就是Intelligencia的开源组件UrlRewriter.NET和IIRF,它们分别在ASP.NET层面和IIS层面上进行URL重写。  阅读全文

posted @ 2008-01-13 00:27 Jeffrey Zhao 阅读(5404) | 评论 (47)编辑

     摘要: 之前觉得这个话题已经被谈滥了。URL Rewrite早已经被广大开发人员所接受,网上关于URL Rewrite的组件和文章也层出不穷,但是总是让我感觉意犹未尽,于是最终还是忍不住提笔写了这系列文章。这些文章不会谈论URL Rewrite的价值与意义,而只会谈论纯技术的内容。文章中也不会有详尽地实现分析,而是结合了我的经验,从应用角度来讲解这个话题。您已经知道的,您还不知道的,别处已经讲过的,或者还没有讲过的,希望这系列文章的“旧事重提”不会让您觉得沉闷,并且能让您了解ASP.NET中URL Rewrite的方方面面。如果您以后再遇到URL Rewrite方面的问题是能够想到这几篇文章,估计我做梦也会笑出声来。  阅读全文

posted @ 2008-01-12 19:52 Jeffrey Zhao 阅读(5503) | 评论 (23)编辑

     摘要: User Control大家肯定不会陌生,在使用ASP.NET的过程中,除了aspx页面,最常见的就莫过于ascx了。ascx是一个有独立逻辑的组件,提供了强大的复用特性,合理使用,能够大大提高开发效率。通过User Control直接生成HTML内容其实已经是一个比较常用的技巧了(尤其在AJAX时代),不过网络上这方面的内容比较少,很多人还是在苦苦地拼接字符串,因此在这里我通过一个实例简单介绍一下这个技巧。  阅读全文

posted @ 2007-12-30 23:06 Jeffrey Zhao 阅读(8549) | 评论 (208)编辑

posted @ 2007-12-24 00:03 Jeffrey Zhao 阅读(3153) | 评论 (17)编辑

     摘要: 有人说,客户端ID污染问题使脚本代码很难做到“内聚”。可能他的意思是将脚本代码提取到js文件中吧。但是我认为,这种污染“迫使”我们必须使用内聚性高的方式进行客户端开发。
这也算是一种因祸得福吧。  阅读全文

posted @ 2007-12-23 18:44 Jeffrey Zhao 阅读(6163) | 评论 (57)编辑

     摘要: 在ASP.NET的WebForms刚出现时,各种“演示”看上去真的很美。这个特点微软至今还保留着,各微软技术大会上的演示真的让人感到心潮澎湃。在我看来,那些“激素大会”更是一种推广策略,而并没有将目光集中在技术细节的本身。所以微软的东西似乎总是有入门容易提高难的“毛病”。开发人员被“宠坏”了,上一篇文章中有位朋友说这就是“穷人的孩子早当家”,还是有一定道理的。在.NET环境下我们就像是官宦子弟,不过这并不能成为我们习惯于“吃喝嫖赌”的理由。我们要合理利用富裕的环境带给我们的资源,但是要适当地抛弃一些不好的东西。  阅读全文

posted @ 2007-12-22 22:41 Jeffrey Zhao 阅读(6399) | 评论 (148)编辑

     摘要: 我还是想写这篇文章,我只会WebForms平反,而不会“贬低”MVC框架;我只是想证明WebForms的那些缺点到底真的是缺点,还是开发人员自身没有好好利用起这把利器。因此我将会根据我的经验,一一回应对WebForms比较常见的指责。如果措辞上有任何的不妥,也请大家多多包涵。  阅读全文

posted @ 2007-12-22 02:22 Jeffrey Zhao 阅读(10453) | 评论 (165)编辑

posted @ 2007-12-07 01:48 Jeffrey Zhao 阅读(2585) | 评论 (39)编辑

     摘要: 就是那本书,提出了14条开发高性能Web应用准则的书。  阅读全文

posted @ 2007-11-26 14:26 Jeffrey Zhao 阅读(5923) | 评论 (37)编辑

posted @ 2007-11-23 14:35 Jeffrey Zhao 阅读(2997) | 评论 (56)编辑

     摘要: 在《在Linq to Sql中管理并发更新时的冲突(2):引发更新冲突》一文中,我们描述了Linq to Sql检测在更新时是否产生了冲突的基本方法:将该记录每个字段原来的值和更新时的值进行对比,如果稍有不同则意味着记录被修改过,因此产生了更新冲突。不过您是否有这样的感觉,这种方法实在累赘了一些?因此Linq to Sql提供了另外一种检测并发更新冲突的方式:使用记录的时间戳。这并不是Linq to Sql特有的功能,如果您了解其他的ORM框架的话,就会发现诸如Hibernate也提供了类似的机制——自然,在使用上不会像Linq to Sql那样方便。  阅读全文

posted @ 2007-11-23 09:21 Jeffrey Zhao 阅读(3476) | 评论 (16)编辑

     摘要: 复用查询计划是Sql Server降低CPU开销,提高性能的一个重要手段。但是Linq to Sql可能无法复用查询计划,这是怎么回事儿呢?  阅读全文

posted @ 2007-11-21 08:43 Jeffrey Zhao 阅读(3436) | 评论 (31)编辑

posted @ 2007-11-20 19:53 Jeffrey Zhao 阅读(1448) | 评论 (2)编辑

     摘要: 在上一讲中,我们提到了一些诸如“乐观并发控制”、“悲观并发控制”的概念,以及察看Linq to Sql自动生成sql语句的方法。从这篇文章起我们将继续来查看Linq to Sql在管理并发更新时是如何发现冲突问题的。  阅读全文

posted @ 2007-11-20 19:30 Jeffrey Zhao 阅读(2400) | 评论 (14)编辑

posted @ 2007-11-12 22:38 Jeffrey Zhao 阅读(1951) | 评论 (42)编辑

     摘要: 为您的页面也添加一个Web Live Messenger吧!  阅读全文

posted @ 2007-11-10 00:37 Jeffrey Zhao 阅读(6125) | 评论 (74)编辑

posted @ 2007-11-05 11:52 Jeffrey Zhao 阅读(1986) | 评论 (14)编辑

posted @ 2007-11-02 22:45 Jeffrey Zhao 阅读(2132) | 评论 (10)编辑

posted @ 2007-11-01 23:06 Jeffrey Zhao 阅读(1903) | 评论 (30)编辑

posted @ 2007-10-31 21:02 Jeffrey Zhao 阅读(1502) | 评论 (9)编辑

     摘要: 无论与目前的ORM框架相比有没有优势,Linq to Sql在语言和平台的级别上为我们提供了一种新的操作对象和数据的方式,在一定程度上为我们解决了Object != Data的问题。在实际应用中,对于数据库的操作往往有着天生的并发性,因此在更新数据时可能会产生冲突。有些时候,如果没有合理的解决冲突问题,轻则让用户摸不着头脑,重则让系统数据处于一种不一致的状态。Linq to Sql自然考虑到了这一点,本系列讨论的内容,就是在使用Linq to Sql时,如何管理并发更新时产生的冲突。

  本文为这个系列的第一篇,将讨论一些预备知识,它们是进行后续研究的基础。  阅读全文

posted @ 2007-10-30 23:49 Jeffrey Zhao 阅读(3433) | 评论 (24)编辑

posted @ 2007-10-29 18:47 Jeffrey Zhao 阅读(9071) | 评论 (116)编辑

     摘要: 招聘职位:
1、软件开发工程师
2、面向测试软件开发工程师  阅读全文

posted @ 2007-10-11 02:46 Jeffrey Zhao 阅读(3071) | 评论 (39)编辑

     摘要: 对于一个应用程序来说,最重要的特性之一就是安全性。安全性是如此的重要,自然WCF也会为它提供了良好的支持,否则也无法称之为一个成熟的模型了。  阅读全文

posted @ 2007-07-25 02:32 Jeffrey Zhao 阅读(5857) | 评论 (31)编辑

     摘要: 之前遇到一个要求,需要能够取消一个正在进行中的Web Service。这也是我第一次遇到这个功能,不过不难,我想。既然ASP.NET AJAX的客户端与服务器端通信完全通过Microsoft AJAX Library的异步通信层进行,那么我们只要得到正在请求Web Service的Sys.Net.WebRequest对象,调用其abort方法就可以了。但是究竟应该如何得到这个对象呢?其中似乎还有这么一些问题……  阅读全文

posted @ 2007-07-23 22:02 Jeffrey Zhao 阅读(8428) | 评论 (35)编辑

     摘要: 在我看来,toString方法是一个类最重要的方法之一。在JavaScript中,将一个对象转化为字符串形式的默认方法就是调用其toString方法。因此,为类型实现一个合理的toString方法对于开发和调试都有一定的好处。在面向对象编程中,在父类中定义toString方法,以此为它的各个子类提供相似的字符串表现形式是常用的做法之一,但是如果您使用Microsoft AJAX Library的面向对象机制进行开发时就会遇到一个问题。那就是toString方法无法被继承。说的更明白一些,就是子类无法获得父类的toString方法的实现。除非在子类中直接定义一个toString方法,否则它只能含有JavaScript中默认的toString方法。很显然,这没有任何意义,也失去了面向对象的重要特性。这是为什么?又该如何解决呢?  阅读全文

posted @ 2007-07-17 00:23 Jeffrey Zhao 阅读(6242) | 评论 (38)编辑

posted @ 2007-07-12 20:43 Jeffrey Zhao 阅读(8238) | 评论 (23)编辑

     摘要: AjaxControlTookit中控件的关键在于客户端的Behavior对象,Behavior对象大都有丰富的属性,方法和事件。在目前的版本中,为某些Behavior添加Event Handler并非一件很容易的事情。相信今后的AjaxControlToolkit版本中将会为一些较早的Extender补充对于客户端事件的支持,让我们拭目以待吧,只是眼下我们还需要使用一些较为有技巧的方式来实现功能了。  阅读全文

posted @ 2007-07-11 22:31 Jeffrey Zhao 阅读(6604) | 评论 (18)编辑

     摘要: 缓存是开发高性能和高可用性Web应用的重要手段之一。作为ASP.NET AJAX的关键功能,从客户端访问Script Method会被大量用于使用ASP.NET开发的AJAX应用。这个功能有一个内置的服务器端缓存机制,不过如果我们能在客户端进行缓存则会得到更好的效果。  阅读全文

posted @ 2007-07-02 12:31 Jeffrey Zhao 阅读(5236) | 评论 (39)编辑

posted @ 2007-07-02 04:30 Jeffrey Zhao 阅读(6908) | 评论 (84)编辑

posted @ 2007-06-28 14:59 Jeffrey Zhao 阅读(2231) | 评论 (17)编辑

posted @ 2007-06-26 20:56 Jeffrey Zhao 阅读(2730) | 评论 (13)编辑

     摘要: 您在为AjaxControlTookit开发Extender控件时使用ScriptPath属性吗?ScriptPath属性的拙劣设计几乎使它成为了ExtenderControlBase类中最没有用的属性了。  阅读全文

posted @ 2007-06-25 20:45 Jeffrey Zhao 阅读(3981) | 评论 (16)编辑

posted @ 2007-06-23 06:31 Jeffrey Zhao 阅读(1754) | 评论 (2)编辑

posted @ 2007-06-22 13:33 Jeffrey Zhao 阅读(3003) | 评论 (8)编辑

posted @ 2007-06-18 12:18 Jeffrey Zhao 阅读(4074) | 评论 (69)编辑

     摘要: 几个月前,我扩展了Atlas CTP时期的的AutoCompleteBehavior,到了ASP.NET AJAX正式版之后这个扩展自然就不能用了。其实这段时间内有不少朋友问我该如何做到像Google Suggest那样带丰富样式的自动补全功能,但是由于各种原因,我没有深入地研究它,更别提对它的扩展了。最近手头正好有些时间,也就逼迫自己耐着性子读了读AutoCompleteBehavior的代码,并作了这个扩展。  阅读全文

posted @ 2007-06-12 18:15 Jeffrey Zhao 阅读(4693) | 评论 (62)编辑

     摘要: 似乎有不少朋友在下在BlogEngine 1.0的源代码之后会发现居然无法正确编译,因为{SiteRoot}\User Controls\CommentView.cs里的代码遇到了错误。为什么引号没有封闭?作者怎么会把一个无法编译的版本发布出去呢?其实问题并非那么简单……  阅读全文

posted @ 2007-06-06 22:03 Jeffrey Zhao 阅读(5052) | 评论 (73)编辑

     摘要: 本文详细讲解了JavaScript中Date对象的以下几个方面:

浏览器默认格式字符串
解析时间日期字符串
系统设定时间日期字符串
如何在实际开发中使用客户端系统的格式  阅读全文

posted @ 2007-06-06 17:29 Jeffrey Zhao 阅读(5105) | 评论 (49)编辑

     摘要: 在JavaScript中处理时间使用的就是Date原生类型了,这也是在使用JavaScript进行开发时最常用的对象之一。本文讲述了关于JavaScript中Date类型的以下部分内容:

概念
Date函数
Date对象的构造  阅读全文

posted @ 2007-06-06 14:02 Jeffrey Zhao 阅读(4055) | 评论 (21)编辑

     摘要: ASP.NET AJAX提出了多种模型,在客户端有Component、Control和Behavior模型,在服务器端有ScirptControl和Extender模型。这些模型各有各的用途,但是请注意非常重要的一点:客户端模型和服务器端模型是相互独立的。我们必须意识到以下三点,才能灵活地使用Extender和Behavior。

Extender模型和Behavior模型没有必然联系。
Behavior可以独立于Extender执行。
所有效果是由Behavior提供的。  阅读全文

posted @ 2007-06-04 13:32 Jeffrey Zhao 阅读(5396) | 评论 (29)编辑

posted @ 2007-06-03 07:10 Jeffrey Zhao 阅读(2034) | 评论 (19)编辑

     摘要: 日期时间是开发过程中最尝使用的数据类型之一,但是很多开发人员在使用过程中忽视了时间日期的一些特性。现在的应用越来越讲究“国际化”和“本地化”,它们的重要特征之一就是一些数据类型的格式或换算,日期时间是其中之一(其余还有货币,数字等等)。在进一步讨论开发中的日期时间问题之前,我们需要先理清有关时间的一些基础概念。对于时间日期来说,最重要的可能就是“时差”问题,主流编程语言中表示日期时间对象都对于这个问题有着足够的支持,不过许多开发人员都会忽视这一点。这就是这片文章中最主要会谈论的问题。虽然大部分的应用可能都不涉及到“全球化”,但是我们还是有充分的理由来搞清楚时间方面的问题。  阅读全文

posted @ 2007-06-03 07:04 Jeffrey Zhao 阅读(4492) | 评论 (16)编辑

     摘要: 在UpdatePanel对页面进行部分刷新时注册一些Data Item是ASP.NET AJAX的特点之一。我们可以在服务器端为某个控件注册一个字符串甚至是一个对象,然后在客户端将将其取回。但是现在我希望向您展示一些您可能会忽视的事情。  阅读全文

posted @ 2007-04-18 15:05 Jeffrey Zhao 阅读(5217) | 评论 (35)编辑

posted @ 2007-04-14 16:30 Jeffrey Zhao 阅读(2702) | 评论 (7)编辑

posted @ 2007-04-12 19:42 Jeffrey Zhao 阅读(1877) | 评论 (6)编辑

     摘要: 在最后,我们还必须编写一个HttpModule来支持异步刷新时页面的重定向。  阅读全文

posted @ 2007-04-12 11:51 Jeffrey Zhao 阅读(5800) | 评论 (54)编辑

     摘要: 现在就要开始整个项目中最有技巧的部分了。如果我们的组件需要在多种浏览器中正常的运行,我们必须好好考虑一下发送和解析数据的方式。如果我们把这部分的机制完全交给ASP.NET AJAX原有的行为来执行,则会遇到问题。  阅读全文

posted @ 2007-04-11 15:02 Jeffrey Zhao 阅读(5077) | 评论 (16)编辑

posted @ 2007-04-10 21:35 Jeffrey Zhao 阅读(2729) | 评论 (19)编辑

posted @ 2007-04-10 21:24 Jeffrey Zhao 阅读(3389) | 评论 (11)编辑

     摘要: 如果第一次异步刷新在加载脚本时发起了另一个异步刷新,第二次异步刷新可能就会不受我们控制地被中断了。  阅读全文

posted @ 2007-04-09 08:43 Jeffrey Zhao 阅读(4648) | 评论 (28)编辑

     摘要: 我们的UpdatePanelIFrameExecutor继承了WebRequestExecutor,因此需要实现许多方法和属性。但是我们事实上不用完整地实现所有的成员,因为客户端的异步刷信机制只会访问其中的一部分。  阅读全文

posted @ 2007-04-06 10:10 Jeffrey Zhao 阅读(4030) | 评论 (21)编辑

     摘要: 我们现在来关注服务器端的组件。目前的主要问题是,我们如何让页面(事实上是ScriptManager控件)认为它接收到的是一个异步的回送?ScriptManager控件会在HTTP请求的Header中查找特定的项,但是我们在向IFrame中POST数据时无法修改Header。所以我们必须使用一个方法来“欺骗”ScriptManager。  阅读全文

posted @ 2007-04-05 11:55 Jeffrey Zhao 阅读(4608) | 评论 (13)编辑

     摘要: UpdatePanel从一开始就无法支持AJAX的文件上传方式。Eilon Lipton写了一篇文章解释了这个问题的原因。文章中提供了两个绕开此问题的方法。不过,我们为什么不使UpdatePanel兼容FileUpload控件(<input type="file" />)呢?如果可以这样,一定能够受需要使用UpdatePanel上传文件的用户欢迎。  阅读全文

posted @ 2007-04-04 12:16 Jeffrey Zhao 阅读(7072) | 评论 (46)编辑

posted @ 2007-04-03 21:59 Jeffrey Zhao 阅读(1790) | 评论 (15)编辑

posted @ 2007-04-03 21:29 Jeffrey Zhao 阅读(6374) | 评论 (15)编辑

posted @ 2007-03-29 22:56 Jeffrey Zhao 阅读(2357) | 评论 (43)编辑

     摘要: Incremental Content是我随意取的名字,我有时候会希望,把一些常见的场景,总结出ASP.NET AJAX一些比较固定的使用模式。Incremental Content是我为现在这个“模式”取的名字。这个模式的作用,就是使用UpdatePanel来不断地在页面上增加内容。想到这个使用方式的原因,是因为在中午与Bing对UpdatePanel的一些问题进行了讨论。他谈到,使用UpdatePanel,会造成过多的数据传输上的浪费。例如博客园的回复,事实上要更新的只是新增的内容,而并不需要整个评论区进行刷新。这篇文章谈到的Incremental Content就是为了解决这类问题而产生的。建议dudu在合适的时候修改一下添加评论的代码。:)
  阅读全文

posted @ 2007-03-29 20:18 Jeffrey Zhao 阅读(5192) | 评论 (32)编辑

     摘要: 这是一个很常见的使用场景,尤其是出现了UpdatePanel之后:页面中有一排菜单,点击菜单中的每一项,都会使某个UpdatePanel中出现不同的控制面板。在开发时,往往会将每个的控制面板写成不同的用户控件,点击菜单时事实上就是在UpdatePanel中放入不同的用户控件。如果要开发这样的功能,从理论上来说并不困难,但是如果要能够在控件之间灵活切换,甚至要从控件A的某个操作中切换到控件B,可能就需要增加控件之间的耦合度了。因此,如何控制这样的切换似乎需要细细考虑一下。  阅读全文

posted @ 2007-03-29 03:18 Jeffrey Zhao 阅读(5556) | 评论 (78)编辑

     摘要: UpdatePanel终于可以上传文件了!我们要做的,只是在页面上添加一个控件而已。  阅读全文

posted @ 2007-03-26 20:23 Jeffrey Zhao 阅读(26222) | 评论 (96)编辑

posted @ 2007-03-26 19:27 Jeffrey Zhao 阅读(2262) | 评论 (9)编辑

     摘要: 在之前的一篇文章中,我谈了如何在页面中“轻量级地”实现了模态的UpdateProgress。这次,我带来了一个“重量级”的实现:ModalUpdateProgress控件。  阅读全文

posted @ 2007-03-26 02:33 Jeffrey Zhao 阅读(5393) | 评论 (42)编辑

     摘要: 这次更新最主要的可能就是官方文档的更新,尤其是对页面的客户端页面生命周期与UpdatePanel客户端生命周期(事实上前者包含了后者)提供了详细的说明和举例。  阅读全文

posted @ 2007-03-23 15:05 Jeffrey Zhao 阅读(5680) | 评论 (41)编辑

     摘要: 第17届Jolt Award终于出炉了,再这之前,我们再来回顾一下候选选手们。  阅读全文

posted @ 2007-03-23 04:13 Jeffrey Zhao 阅读(5036) | 评论 (31)编辑

     摘要: 又被问了这样一个问题:UpdateProgress如何像ModalPopupExtender那样的效果呢?类似的问题有:如何在UpdatePanel里使用ModalPopupExtender呢?我这次仔细想了想,感觉问题并不那么简单。  阅读全文

posted @ 2007-03-22 08:50 Jeffrey Zhao 阅读(4813) | 评论 (31)编辑

posted @ 2007-03-21 21:16 Jeffrey Zhao 阅读(2069) | 评论 (13)编辑

posted @ 2007-03-21 09:52 Jeffrey Zhao 阅读(1855) | 评论 (3)编辑

posted @ 2007-03-20 05:33 Jeffrey Zhao 阅读(1662) | 评论 (7)编辑

     摘要: 如果需要的话,您不妨在开发过程中自定义一个UpdatePanel触发器吧。  阅读全文

posted @ 2007-03-19 10:27 Jeffrey Zhao 阅读(3669) | 评论 (5)编辑

posted @ 2007-03-18 05:48 Jeffrey Zhao 阅读(1200) | 评论 (4)编辑

     摘要: ParentAnimation,顾名思义,是一组Animation的父亲,是所有需要包含其它Animation的父类,我们熟悉的ParallelAnimation(并行动画)和SequenceAnimation(顺序动画)都是它的子类。从这个概念上来说,这也是个非常经典的Composit模式应用。  阅读全文

posted @ 2007-03-16 15:16 Jeffrey Zhao 阅读(2798) | 评论 (13)编辑

     摘要: 大家可以看着玩玩,呵呵。  阅读全文

posted @ 2007-03-15 18:12 Jeffrey Zhao 阅读(1783) | 评论 (9)编辑

     摘要: 初步了解Animation模型。  阅读全文

posted @ 2007-03-14 14:04 Jeffrey Zhao 阅读(3571) | 评论 (19)编辑

posted @ 2007-03-14 02:20 Jeffrey Zhao 阅读(3528) | 评论 (19)编辑

posted @ 2007-03-13 20:27 Jeffrey Zhao 阅读(5785) | 评论 (41)编辑