摘要:扩展方法是C# 3.0(老赵对VB不熟)中最简单,也是最常用的语言特性之一。这是老赵自以为的一个简单却不失经典的实例。 阅读全文
一个较完整的关键字过滤解决方案(下)
2009-01-05 14:59 by Jeffrey Zhao, 19610 阅读, 1 推荐, 收藏, 编辑
摘要:陷阱何在?适用场合是什么?如何控制输入过滤和输出过滤?我们真的需要HttpModule吗?性能如何?在这篇文章里,我们来针对一些问题进行讨论。如果您觉得有哪些您感兴趣但是没有涉及到的问题则请在评论中补充,我会修改文章添加一下内容。 阅读全文
一个较完整的关键字过滤解决方案(中)
2008-12-24 10:56 by Jeffrey Zhao, 21487 阅读, 2 推荐, 收藏, 编辑
摘要:上篇文章提出的问题解决了没有?哦哦,我是指采取命名约定的方式来改变过滤行为。当然有问题,不过我这里提一下比较重要的两个:1. 首先,就是“改名”这种行为——究竟是否方便?2. 再者,命名真是我们可以控制的吗?路漫漫而修远兮…… 阅读全文
一个较完整的关键字过滤解决方案(上)
2008-12-22 09:11 by Jeffrey Zhao, 27286 阅读, 2 推荐, 收藏, 编辑
摘要:关键字过滤功能自然无比重要,但是如果要在代码中对每个输入进行检查和替换则会是一件非常费神费事的事情。尤其是如果网站已经有了一定规模,用户输入功能已经遍及各处,而急需对所有输入进行关键字过滤时,上述做法更可谓“远水解不了近渴”。这时候,如果有一个通用的办法,呼得一下为整站的输入加上了一道屏障,那该是一件多么惬意的事情。这就是本文希望解决的问题。是不是很简单?我一开始也这么认为,不过事实上并非那么一帆风顺,而且在某些特定条件下似乎更是没有太好的解决方法…… 阅读全文
和谐社区,和谐技术:微软的宠儿们,为什么富人的孩子就不能早当家?
2008-12-11 08:57 by Jeffrey Zhao, 24892 阅读, 1 推荐, 收藏, 编辑
摘要:我爱微软。从刚接触计算机开始我就是沉浸在微软的技术中,DOS下开发,VB5/6,Delphi直到现在的.NET,微软让我的技术生涯充满了乐趣。我爱博客园。我是从博客园成长起来的,博客园给了我多于真实能力虚名,让我突然就变成了“赵老师”,“XXX专家”。博客园给了我很多机会,让我的工作路途变得更为通畅。但是,现在却很有唱衰的欲望。 阅读全文
方法的直接调用,反射调用与……Lambda表达式调用
2008-11-24 09:59 by Jeffrey Zhao, 41385 阅读, 19 推荐, 收藏, 编辑
摘要:想调用一个方法很容易,直接代码调用就行,这人人都会。其次呢,还可以使用反射。不过通过反射调用的性能会远远低于直接调用——至少从绝对时间上来看的确是这样。因此,很多框架在必须利用到反射的场景中,都会设法使用一些较高级的替代方案来改善性能。例如,使用CodeDom生成代码并动态编译,或者使用Emit来直接编写IL。不过自从.NET 3.5发布了Expression相关的新特性,我们在以上的情况下又有了更方便并直观的解决方案。 阅读全文
在Web应用程序开发过程中利用ASP.NET MVC框架的实战技巧
2008-11-07 23:18 by Jeffrey Zhao, 30964 阅读, 2 推荐, 收藏, 编辑
摘要:这是我在TechED 2008北京站讲的一个Community Session,主要内容是在传统的ASP.NET(Web Forms)应用程序中运用ASP.NET MVC中一些优秀特性的方式。这里是PPT和Demo下载,以后我再慢慢细说。 阅读全文
概念,依旧是概念……csproj文件是做什么用的?
2008-08-04 08:57 by Jeffrey Zhao, 44358 阅读, 3 推荐, 收藏, 编辑
摘要:本来今天是在写一篇关于LINQ的文章,不过写着写着忽然觉得有些找不着北的感觉,似乎有点过于发散了?于是来博客园逛了一下,正好发现有朋友发了一篇文章《.NET面试题,看看你的水平》,于是就在这篇文章里和目前正红火的小包子同学为某个问题进行了一番争论。而在吵吵闹闹的过程中看到这么一句话“pdb文件需要放在Debug目录下才有效果”,忽然觉得有个话题值得一说:“开发环境与运行环境”。回想起平时被问到的问题,发现有不少朋友对于开发环境和运行环境并不是分的非常清楚。那么就让我们从标题中的问题开始:“csproj文件究竟是做什么用的”。 阅读全文
输出缓存与CachePanel
2008-07-28 10:02 by Jeffrey Zhao, 40071 阅读, 5 推荐, 收藏, 编辑
摘要:缓存的作用自不必说,提高系统性能最重要的手段之一。ASP.NET作为一个成熟、强大的应用程序框架,缓存相关的设计自然是它不可或缺的一部份。ASP.NET中的输出缓存即为所谓的“OutputCache”。不过我们有时候需要更灵活和强大的缓存方式,这就CachePanel诞生的原因。本文将分为以下三个部分:
1、缓存的级别
2、ASP.NET的Output Cache及其缺陷
3、CachePanel的构建及使用 阅读全文
上海柏盛技术有限公司招聘技术人员
2008-07-17 15:33 by Jeffrey Zhao, 45317 阅读, 0 推荐, 收藏, 编辑
摘要:顶贴!继续招聘!“我的衣橱”正在飞速发展阶段!不要怀疑,这个面向女性的时尚网站,就是老赵这个粗人目前正在创业的项目。我们还有许多计划,而现在最希望就是能够有时间,以及有能力的人将它们实现。项目的发展非常迅速,因此我们也需要人才来加入我们:招聘职位1:前台开发人员 工作职责: 用户行为分析及界面开发。 网站前台页面功能开发,包括前台的架构、设计、开发以及单元测试。 在各种环境中(包括产品环境)对前台... 阅读全文
方案改进:直接通过User Control生成HTML
2008-07-14 13:24 by Jeffrey Zhao, 43600 阅读, 0 推荐, 收藏, 编辑
摘要:对于使用User Control生成HTML的方式,大家应该已经比较熟悉了,老赵也曾经写过一篇文章(《技巧:使用User Control做HTML生成》)来描述这个做法。在“我的衣橱”中大量使用了这种生成HTML的方法。不过当项目达到一定规模之后,这个方法的不足之处也慢慢地体现了出来。如果能解决这个问题,就无疑是一个锦上添花的举动…… 阅读全文
精化集ASP.NET AJAX与ASP.NET MVC分类第二轮筛选结果
2008-06-14 16:48 by Jeffrey Zhao, 47485 阅读, 2 推荐, 收藏, 编辑
摘要:以下是包同学导给我的清单。老赵的第二轮把关很严,杀了几乎99%的文章。不过似乎有少部分并没有经过我的手,可能是其他同学转过来的吧。第三轮老赵依旧会严格把关,肯定也会杀更多(包括通过其他同学第二轮的)文章。请大家监督,有疑问请及时告诉老赵。 阅读全文
觉得有必要来澄清几组重要概念
2008-06-04 01:51 by Jeffrey Zhao, 36406 阅读, 8 推荐, 收藏, 编辑
摘要:在阅读很多朋友问题的过程中,以及平时和别人讨论中,亦或是园子里的文章中经常发现一些误用概念的情况。如果在概念上没有形成共识,那么在工作和交流上就会造成许多问题。因此,老赵已觉得有必要特地来澄清一些概念,解释一下这些概念之间的区别和联系。希望在明确这些概念之后,大家能够把注意力集中在对于具体问题的分析解决上,而不要让沟通成为瓶颈。
在这篇文章中,我希望澄清三组概念,它们是:
AJAX / AJAX框架 / AJAX.NET (Professional) / ASP.NET AJAX
LINQ / LINQ to SQL / LINQ to XXX
Lambda Expression / Expression Tree / 匿名方法 阅读全文
我们到底该怎么做精华集
2008-05-22 09:35 by Jeffrey Zhao, 25275 阅读, 0 推荐, 收藏, 编辑
摘要:博客园要做精华集,老赵觉得很有意思。老赵被分配到的工作是ASP.NET AJAX和ASP.NET MVC。不过事实上老赵想搞得东西很多,还有ASP.NET、.NET 3.5也想参一腿等等。不过这篇文章想和大家讨论的并不是计划,因为有些东西老赵还没有确定,所以现在只是来谈谈一些想法。 阅读全文
雅虎CEO杨致远:愿意与微软重启谈判
2008-05-10 17:50 by Jeffrey Zhao, 21658 阅读, 1 推荐, 收藏, 编辑
摘要:路透社消息,雅虎CEO杨致远周一表示,是微软主动离开谈判桌,他个人依然愿意与微软商谈协议。“我们当时在协商找到共识的方法,然後就是周六他们拂袖而去,”杨致远接受路透采访时表示。“他们开启了谈判,然後是他们选择了退出。”当被问到雅虎是否对谈判继续开启大门时,杨致远说:“如果他们有什么新的想法,我们会开放谈判大门……我非常愿意倾听。”在微软撤回475亿美元的收购要约后,雅虎股价周一下挫15%。尽管三个... 阅读全文
更新:让UpdatePanel支持上传文件
2008-05-04 08:57 by Jeffrey Zhao, 37103 阅读, 0 推荐, 收藏, 编辑
摘要:在一年多前我发布了一系列文章(让UpdatePanel支持文件上传(1)、(2)、(3)、(4)、(5)),设法让UpdatePanel支持上传文件。可惜缺陷无数,当时收到了无数bug report但是我都没有时间(和兴趣)去解决,因此只是一个实验品中的实验品。这个组件还有一个问题就在于非常复杂,复杂的原因是为了解决iframe传输数据的问题。当时想了很多办法最终让IE6、7,FireFox 1.5支持了这个组件,但是对于Safari,Opera等浏览器就无能为力了。最近发现jQuery的Form插件能够在一定程度上支持我需要的功能,于是就有了简化并改进该控件的想法。虽然后来发现jQuery在这方面的表现并不如我想象中那么好…… 阅读全文
不妨来做个尝试:UpdatePanel for ASP.NET MVC
2008-04-27 23:59 by Jeffrey Zhao, 34149 阅读, 1 推荐, 收藏, 编辑
摘要:前一段时间尝试为ASP.NET MVC构建了一个类似于UpdatePanel的AJAX解决方案,本文叙述了这个组件的设计思路以及使用方式,并提供了源代码以及示例程序。 阅读全文
ScottGu的Blog真是受欢迎,又多了一种语言
2008-04-27 17:18 by Jeffrey Zhao, 9640 阅读, 0 推荐, 收藏, 编辑
摘要:阿拉伯语:Scott Guthrie's Blog in Arabic 阅读全文
强烈推荐一个有关前台开发技术的Blog
2008-04-21 14:51 by Jeffrey Zhao, 24045 阅读, 0 推荐, 收藏, 编辑
摘要:http://www.cnblogs.com/ruxpinsp1 这是我的一个同事,我们一般叫他“大胡仔”(原因可见其自画像http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html)。此人精通(绝不是各招聘启事或简历上的“精通”)前台开发,对于CSS样式在各种浏览器的各种版本下之间的差别了如指掌。此外又精通JavaScript... 阅读全文
您善于使用匿名函数吗?
2008-04-04 00:10 by Jeffrey Zhao, 30077 阅读, 8 推荐, 收藏, 编辑
摘要:合理使用匿名方法能够大大简化开发,提高代码质量。您善于使用匿名方法吗? 阅读全文
Windows Live Translator
2008-03-24 10:17 by Jeffrey Zhao, 15962 阅读, 0 推荐, 收藏, 编辑
摘要:微软推出的Translator服务,目前还处于试用阶段。对于此类服务打假应该已经不陌生了,不过比较有意思的是Windows Live Translator还提供了一个内嵌在网页里的小部件,您可以将其放在页面的边栏中,读者就可以获得一个翻译功能了,如下: 至于翻译的质量,肯定是不敢恭维的,毕竟是机器嘛……例如我们来试试看中译英: http://www.windowslivetranslator.co... 阅读全文
推荐一篇文章:火星人的耳机
2008-03-23 23:12 by Jeffrey Zhao, 17087 阅读, 0 推荐, 收藏, 编辑
摘要:大名鼎鼎的Joel Spolsky最近写了一篇很有趣的文章《Martian Headsets》。写这篇文章的起因是IE8的推出,这让Joel忽然有兴趣从各个角度讨论Web标准之争的各个方面,比如缘由,现状,以及用户的反应等等。非常值得一看。原文链接:http://www.joelonsoftware.com/items/2008/03/17.html翻译链接:http://luoshengblog... 阅读全文
扩展LINQ to SQL:使用Lambda Expression批量删除数据
2008-03-05 13:01 by Jeffrey Zhao, 42268 阅读, 3 推荐, 收藏, 编辑
摘要:ORM框架在删除数据方面一直有个尴尬,那就是无法通过指定条件批量删除数据。于是对于一些删除操作,我们不得不写SQL语句或者执行存储过程。幸运的是C# 3.0所拥有的强大特性足以让我们对LINQ to SQL的功能进行扩展。为了更好地进行项目开发,以及周五的一次技术交流,我为LINQ to SQL扩展了批量删除功能。 阅读全文
LINQ to SQL异步查询
2008-03-01 01:51 by Jeffrey Zhao, 30109 阅读, 4 推荐, 收藏, 编辑
摘要:异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前文《正确使用异步操作》中解释过了。对于大多数互联网应用来说,性能瓶颈数据库访问。换句话说,一个请求在数据库操作上所花的时间往往是最多的——并且占总时间的90%以上。因此,当Web应用程序的吞吐量因为数据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化。那么我们又该如何使用LINQ to SQL进行异步查询呢? 阅读全文
最近真是又懒又累
2008-02-27 23:56 by Jeffrey Zhao, 21510 阅读, 0 推荐, 收藏, 编辑
摘要:其实工作也不像想象中那么忙,但是下班后就是想看看书然后睡觉。想写的东西其实有很多,但就是懒于动笔。不行了太放松了,要努力了。 阅读全文
正确使用异步操作
2008-02-24 22:03 by Jeffrey Zhao, 43580 阅读, 11 推荐, 收藏, 编辑
摘要:本想写一点有关LINQ to SQL异步调用的话题,但是在这之前我想还是先写一篇文章来阐述一下使用异步操作的一些原则,避免有些朋友误用导致程序性能反而降低。这篇文章会讨论一下在.NET中有关异步操作话题,从理论出发结合实际,以澄清概念及避免误用为目标,并且最后提出常见的异步操作场景和使用案例。这样我们就可以知道什么时候该使用异步操作,什么时候会得不偿失。 阅读全文
在LINQ to SQL中使用Translate方法以及修改查询用SQL
2008-02-19 03:02 by Jeffrey Zhao, 30064 阅读, 3 推荐, 收藏, 编辑
摘要:目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。 阅读全文
MIX 2008与ASP.NET MVC框架的Road-Map
2008-02-13 17:38 by Jeffrey Zhao, 22646 阅读, 0 推荐, 收藏, 编辑
摘要:ScottGu同学最近在Blog上发布了一些有关MIX 2008和ASP.NET MVC框架的消息。 阅读全文
随便说说:在ASP.NET应用程序中上传文件
2008-02-12 17:25 by Jeffrey Zhao, 38538 阅读, 4 推荐, 收藏, 编辑
摘要:在Web程序中上传文件是很常见的需求,最近忽然想到了点这方面的内容,就随便谈谈吧,希望对大家有帮助。 阅读全文
老赵被刷票了,但这不是老赵做的
2008-02-01 21:16 by Jeffrey Zhao, 16561 阅读, 0 推荐, 收藏, 编辑
摘要:http://www.51cto.com/exp/hhhchina/heroes/index.html老赵今天早上大约9点开始被人刷票,当时票数为8700多,但是不久后就发现票数就到达了近万。在发现刷票情况后(当时大约9点半)老赵立即联系了51cto的编辑和主办方(微软)的人,他们均表示会立即汇报,可惜已经无法制止票数上涨。票数依旧以每秒2-3票的速度持续增长,直至中午时到达票数上限32768。已... 阅读全文
微软发布了MSDN Code Gallery站点
2008-01-31 22:48 by Jeffrey Zhao, 10937 阅读, 0 推荐, 收藏, 编辑
摘要:微软近期发布了一个MSDN Code Gallery站点,从名字上就可以看出,这是一个用于存放代码的“展馆”。MSDN Code Gallery和CodePlex的区别在于,前者用于存放各种大大小小的资源,而后者则是一个项目管理平台。不过虽然MSDN Code Gallery的内容比较“零碎”,但是功能似乎还是不少的,甚至可能上传视频说明。希望这个能够成为GotDotNet后新一代微软源码资源库。... 阅读全文
明日讲座主题:ASP.NET WebForms、MVC与MVP的演变与结合
2008-01-26 15:51 by Jeffrey Zhao, 13616 阅读, 0 推荐, 收藏, 编辑
摘要:明日博客园上海俱乐部活动,老赵有幸受邀与大家一起讨论一下ASP.NET方面的问题。经过了一段时间的思考,我准备这次的主题定为“ASP.NET WebForms、MVC与MVP的演变与结合”。 阅读全文
微软十大软件开发英雄评选
2008-01-25 01:24 by Jeffrey Zhao, 11227 阅读, 0 推荐, 收藏, 编辑
摘要:微软这次搞出来个“英雄来自这里(Heros Happen Here)”活动(好像还是全球范围内的),要评选出十大IT英雄和十大软件开发英雄。老赵有幸和杜杜以及特瑞李同学入围了十大软件开发英雄的25人候选人名单,等待网友投票结果。这次入选让我觉得……很古怪,主要是我也不清楚是怎么回事,怎么运作的等等。不过既然入选了就是好事,希望大家能够支持。:)投票方式是:http://www.51cto.com/... 阅读全文
WCF的Web编程模型资源
2008-01-24 02:11 by Jeffrey Zhao, 10672 阅读, 0 推荐, 收藏, 编辑
摘要:.NET 3.5中增强了WCF的功能,为它提供了发布RESTful服务和Syndication(即常见的RSS或Atom)的能力。现在我们开发RESTful的服务或API就非常简单了。同样,无论是分析还是发布RSS也都有了现成的类库(开源产品中原本也有RSS.NET和Atom.NET,不过好像现在都商业化了?)。 MSDN上这方面资源很多,看完类库参考和示例代码(其实并不很多)一般已经足够了。不过... 阅读全文
重提URL Rewrite(4):不同级别URL Rewrite的一些细节与特点
2008-01-13 16:35 by Jeffrey Zhao, 19826 阅读, 1 推荐, 收藏, 编辑
摘要:在之前的文章里我们已经谈论了有关URL Rewrite的几个主要的方面。在本系列的最后一篇文章中,我们就来讨论一下有关不同级别URL Rewrite的一些细节与特点。 阅读全文
重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
2008-01-13 03:17 by Jeffrey Zhao, 20525 阅读, 6 推荐, 收藏, 编辑
摘要:在进行了URL Rewrite之后,经常会遇到的问题就是页面中PostBack的目标地址并非客户端请求的地址,而是URL Rewrite之后的地址,这就将我们服务器端的URL映射规则暴露给了客户端,甚至会引起应用程序错误。这无疑不是我们所希望的,那么我们该如何避免这个情况发生呢?本文就不同层面的URL Rewrite方式分别讨论了这个问题。 阅读全文
重提URL Rewrite(2):使用已有组件进行URL Rewrite
2008-01-13 00:27 by Jeffrey Zhao, 27417 阅读, 4 推荐, 收藏, 编辑
摘要:可能已经没有人会使用上一篇文章中的方法进行URL Rewrite了,因为提供URL Rewrite的组件早已铺天盖地了。如果要我推荐,我指挥推荐两款组件,那就是Intelligencia的开源组件UrlRewriter.NET和IIRF,它们分别在ASP.NET层面和IIS层面上进行URL重写。 阅读全文
重提URL Rewrite(1):IIS与ASP.NET
2008-01-12 19:52 by Jeffrey Zhao, 26141 阅读, 6 推荐, 收藏, 编辑
摘要:之前觉得这个话题已经被谈滥了。URL Rewrite早已经被广大开发人员所接受,网上关于URL Rewrite的组件和文章也层出不穷,但是总是让我感觉意犹未尽,于是最终还是忍不住提笔写了这系列文章。这些文章不会谈论URL Rewrite的价值与意义,而只会谈论纯技术的内容。文章中也不会有详尽地实现分析,而是结合了我的经验,从应用角度来讲解这个话题。您已经知道的,您还不知道的,别处已经讲过的,或者还没有讲过的,希望这系列文章的“旧事重提”不会让您觉得沉闷,并且能让您了解ASP.NET中URL Rewrite的方方面面。如果您以后再遇到URL Rewrite方面的问题是能够想到这几篇文章,估计我做梦也会笑出声来。 阅读全文
技巧:使用User Control做HTML生成
2007-12-30 23:06 by Jeffrey Zhao, 24892 阅读, 18 推荐, 收藏, 编辑
摘要:User Control大家肯定不会陌生,在使用ASP.NET的过程中,除了aspx页面,最常见的就莫过于ascx了。ascx是一个有独立逻辑的组件,提供了强大的复用特性,合理使用,能够大大提高开发效率。通过User Control直接生成HTML内容其实已经是一个比较常用的技巧了(尤其在AJAX时代),不过网络上这方面的内容比较少,很多人还是在苦苦地拼接字符串,因此在这里我通过一个实例简单介绍一下这个技巧。 阅读全文