Hello World
Spiga

归档:2009年09月

关于ASP.NET Routing的几点内容

2009-09-30 10:44 by 老赵, 13984 visits
摘要:在之前的文章中,有一些朋友会问我一些关于ASP.NET Routing的内容。这个组件的重要性越来越大,ASP.NET MVC,ASP.NET Dynamic Data都用到了ASP.NET Routing。事实上,在ASP.NET 4.0中还会出现对ASP.NET WebForms的支持。可惜的是,目前对于ASP.NET Routing的文档和描述内容都很少。因此,有的时候一些朋友可能无法理解我一些扩展的设计思路。现在我打算详细解释一下有关ASP.NET Routing中最常见的几个问题。 阅读全文

ASP.NET Routing对请求的处理方式

2009-09-29 15:09 by 老赵, 13440 visits
摘要:原本这是《关于ASP.NET Routing的几点内容》一文中的一节,不过等写完这节之后发现这块内容已经比较完整了,而且它本身也是独立和最为常见的部分,因此我把它提取出来单独成文。至于那片文章的其他部分我会再修改一下,明天发布。希望这些内容会对您理解ASP.NET Routing工作方式,以及阅读ASP.NET Routing的代码有所帮助。 阅读全文

趣味编程:C#中Specification模式的实现(参考答案 - 下)

2009-09-29 10:35 by 老赵, 14139 visits
摘要:上一篇文章中我们利用C#语言的特性实现了一种轻量级的Specification模式,它的关键在于抛弃了具体的Specification类型,而是使用一个委托对象代替唯一关键的IsSatisfiedBy方法逻辑。据我们分析,其优势之一在于使用简单,其劣势之一在于无法静态表示。但是它们还都是在处理“业务逻辑”,如果涉及到一个用于LINQ查询或其他地方的表达式树,则问题就不那么简单了——但也没有我们想象的那么复杂。 阅读全文

使用Model Binder绑定Action参数字段时的取舍问题

2009-09-28 13:57 by 老赵, 12364 visits
摘要:刚才在看代码的时候忽然发现了一件可能会成为问题的情况,而这个情况还挺隐蔽的。因此,我原本写到一半的东西就暂时停下,顺延至明天,而现在先来谈谈这个问题。这个问题就是在使用DefaultModelBinder在绑定字段时的取舍问题。而您在使用ASP.NET MVC的时候不妨也检查一下,看看有没有这方面的情况。 阅读全文

趣味编程:C#中Specification模式的实现(参考答案 - 上)

2009-09-28 10:34 by 老赵, 13203 visits
摘要:Specification模式的作用是构建可以自由组装的业务逻辑元素。不过就上篇文章的示例来看,“标准”的Specification模式的实现还是比较麻烦的,简单的功能也需要较复杂的代码。不过,既然说是“标准”的方式,自然就是指可以在任意面向对象语言中使用的实现方式,不过我们使用的是C#,在实际开发过程中,我们可以利用C#如今的强大特性来实现出更容易使用,更轻量级的Specification模式。 阅读全文

在视图中使用递归生成树状结构

2009-09-27 13:45 by 老赵, 15311 visits
摘要:在开发过程中往往会有一个需求,就是将一个树状的数据结构在视图中表示出来。例如最传统的多级分类,系统中有一系列根分类,每个分类中又带有一些子分类,而我们的目标便是在页面上生成一个由ul和li嵌套组成的HTML结构。这个问题看似简单,但是如何让实现变的轻松、易于使用也是一个值得讨论的问题。这次就来谈谈这部分的情况。 阅读全文

使用Lambda表达式编写递归函数(性能测试)

2009-09-27 13:23 by 老赵, 12580 visits
摘要:为了补充引用资料,现在对之前Lambda表达式编写递归函数进行一番性能测试。测试的对象为辗转相除法求最大公约数,使用以下三种方式计算:普通递归,使用SelfApplicable及Fix进行计算。从执行时间上看,直接递归的性能最好,Self次之,但相差不大,但Fix方式消耗的时间就为前两者的7倍左右了。从GC压力上看,直接递归与Sel对GC都没有丝毫压力,但Fib由于构建了额外的委托对象,其压力也相对较大。 阅读全文

谈谈我对《ThoughtWorks文集》中多语言开发部分的看法

2009-09-26 17:44 by 老赵, 13545 visits
摘要:一早看怪怪同学评论《ThoughtWorks文集》公开的样章,一谈多语言开发(第5章),二谈测试(第13章)。怪怪同学的看法是贬前者而捧后者,并提出“同样一个包装下、同一个公司不同的作者,差异如此之大,那么在我们的学习过程中,就要注意去芜存菁了”。说实话,我没有理解他对第5章的评价,如在“抽象方式”方面的说法我没有太深的理解。不过现在我也谈谈我对书中所写多语言开发的看法。用一句话概括的话就是:赞同结论,不赞同论据。的确如怪怪同学所言,即使是有“大师”称号的作者,其内容也该去芜存菁。 阅读全文

幻灯片:LINQ Inside, Part 1

2009-09-26 13:06 by 老赵, 12831 visits
摘要:整理电脑时整理发现一个幻灯片,修改日期是去年年底,当时不知道为了什么,对方是谁讲一次LINQ。这次讲座是入门型的,主要讲了讲什么是LINQ,什么是表达式,表达式树等等。不过这第一部分似乎……还没有提到LINQ,更那个什么的是,我已经找不到第二部分了……因此,大家可以随意看看。目前脑袋写了几篇相当不错的,可作为入门的LINQ相关文章。以后我再提到这部分内容时终于也有东西可以引用了…… 阅读全文

语言特性与API设计

2009-09-25 17:12 by 老赵, 13023 visits
摘要:我平时的主要工作之一,便是编写一些基础及通用的类库,能够在项目中大量复用。换句话说,我的工作目的,是让其他开发人员可以更好地完成工作。因此,如何设计更容易使用的API是我经常要考虑的东西,偶尔也会有一些体会。而现在这些内容,是我在为Functional Reactive Programing写“参考答案”的时候忽然“总结”出来的想法。可能比较简单,但我想也是设计API是需要考虑的一些内容。 阅读全文

我对NHibernate的感受(2):何必到处都virtual

2009-09-24 15:09 by 老赵, 16431 visits
摘要:上一篇文章主要是在夸NHibernate实现的好,而这篇就完全是来抱怨的了。NHiberante有个毛病,就是如果是和数据库产生映射的类,就要求所有的public成员和protected成员必须是virtual的。这就让我觉得无厘头了,为什么没有任何关系的东西也要受到限制?我知道NHiberante要求将属性标记为virtual是为了延迟加载,但这又关没有映射的属性,甚至方法什么事情呢?虽然我现在明白了原因,但还是不能接受——因为我们在承受Java语言所带来的痛苦。 阅读全文

我对NHibernate的感受(1):对延迟加载方式的误解

2009-09-24 14:04 by 老赵, 17505 visits
摘要:我用NHibernate时间不长,而NHibernate的复杂程度也决定了我无法像了解LINQ to SQL那样容易。不过在使用了一段时间过后,还是对它有一定体会。有欣喜,有误解,也有抱怨。总体来说,目前NHibernate是我最满意的ORM框架。之前我一直认为NHibernate使用了一种简单的延迟加载方式。但事实上,它使用了一种维持原有业务逻辑的延迟代理写法。如果您关注我的文章,会发现这就是我之前提出的最为理想的延迟代理实现方式,也是我在Eazy类库中使用的做法。惭愧啊。 阅读全文

一些技术图书编写、推荐、出版人员需要自重

2009-09-23 20:04 by 老赵, 18801 visits
摘要:国内图书市场已经很不健康了,虽然现在许多出版社、编辑和作者的努力都看得到,但是总有更多的书冒出来拖他们的后腿。对于普通人来说,有多少人会区分出版社,区分作者呢?因此,我真希望技术图书的编写、推荐和出版人员还是要自重,写不好书就不要写,出不了好书就不要吹,没看过书就不要推。图书产业虽然也早已商业化,但是这毕竟还代表了知识,有其特殊性,经济利益不该是你们唯一考量的东西。 阅读全文

在ASP.NET MVC中使用IIS级别的URL Rewrite

2009-09-23 15:03 by 老赵, 13960 visits
摘要:大约一年半前,我在博客上写过一系列关于URL Rewrite的文章,把ASP.NET平台上进行URL Rewrit的方式和各自地特点进行了较为详细的描述。应该来说,已经讲的非常具体,可以应对90%的情况。其实IIS Rewrite的原理非常容易理解,进行一些简单的变化和推断之后,便可以得出一些问题的原因和解决方案。现在我们就来看一个真实案例:在ASP.NET MVC中使用IIS级别的URL Rewrite。 阅读全文

趣味编程:Functional Reactive Programming(参考答案)

2009-09-23 10:45 by 老赵, 13155 visits
摘要:初见Functinal Reactive Programming时,它的编程方式让我大开了眼界,居然可以用这种方式来操作和控制事件。虽然从技术角度来说,要实现这种方式并不是非常困难,甚至颇为有趣。因此我把它当作一次“趣味编程”。不过,这次的结果似乎让我对API设计有了一些新的体会,我打算明天再来总结一下。今天,我们先关注原题的解决方式。 阅读全文

片段缓存的实际应用、延迟加载及Eazy类库

2009-09-22 14:54 by 老赵, 14032 visits
摘要:片段缓存已经实现完整了,但好像还没有提到如何在项目中进行实际应用,那么现在就来谈一谈这方面。之前也有朋友提出,这个片段缓存难道节省的只是拼接HTML字符串的时间吗?这其实就涉及到片段缓存在实际项目中该如何使用的问题了。我们通过延迟加载来省下数据加载的开支,而且有了Eazy类库之后,定义延迟加载是件非常容易的事情。 阅读全文

适合ASP.NET MVC的视图片断缓存方式(下):页面输出原则

2009-09-22 11:05 by 老赵, 13405 visits
摘要:上一篇文章里已经把Html.Cache打造成了非常具有可用性的API,需要缓存时我们只需在页面上做一个标记即可。标记内部的写法和普通视图的写法相同,RenderPartial等辅助方法输出内容也会被一并缓存下来。只可惜,上次文章末尾我提到有些效果是有前提的。这个前提就是必须修改RenderPartial的实现,让它遵守一个原则:如果您是在向页面输出内容,请务必将所有内容通过页面的Writer输出。 阅读全文

适合ASP.NET MVC的视图片断缓存方式(中):更实用的API

2009-09-21 15:49 by 老赵, 14076 visits
摘要:上一篇文章中我们提出了了片断缓存的基本方式,也就是构建HtmlHelper的扩展方法Cache,接受一个用于生成字符串的委托对象。但是在实际开发过程中,我们最乐于看到的使用方法,应该只是使用某个标记来“围绕”一段现有的代码。不过这个方法并不实用,如果您要缓存大片的HTML,还需要准备一个Partial View,再用它来生成网页片段。这次我们会构建一个更为良好的API。 阅读全文

幻灯片:Web开发中的缓存

2009-09-21 00:32 by 老赵, 14469 visits
摘要:这是我昨天在博文视点Open Party上海站上关于Web开发中缓存的简单讲座。原本博文视点的朋友们希望我讲一下ASP.NET MVC方面的话题(估计看我最近一直在搞这个),但是我觉得其他平台一直用的是MVC框架,而ASP.NET MVC作为“后来者”也没有什么出彩的地方,所以最终选择这个稍微“通用”些的话题。 阅读全文

从ASP.NET的PHP执行速度比较谈起

2009-09-18 12:14 by 老赵, 17029 visits
摘要:上星期我在InfoQ发表了一篇新闻,对Joe Stagner在博客上发表的三篇关于ASP.NET与PHP性能对比的文章进行了总结。写新闻其实挺不爽的,因为不能夹杂个人的看法,只能平铺直叙陈述事实。当然,如果像某些新闻那样“换一种说法”是可以骗过一些“不明真相的群众”,但是这就有违道德了。因此,在客观陈述完新闻内容之后,我只能选择把自己的感想、评论等内容放在自己的博客上。 阅读全文
1 2 3 Next >
使用Live Messenger联系我