Hello World
Spiga

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

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

2009-09-23 15:03 by 老赵, 13962 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 老赵, 13158 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 老赵, 14078 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性能对比的文章进行了总结。写新闻其实挺不爽的,因为不能夹杂个人的看法,只能平铺直叙陈述事实。当然,如果像某些新闻那样“换一种说法”是可以骗过一些“不明真相的群众”,但是这就有违道德了。因此,在客观陈述完新闻内容之后,我只能选择把自己的感想、评论等内容放在自己的博客上。 阅读全文

适合ASP.NET MVC的视图片断缓存方式(上):起步

2009-09-17 17:19 by 老赵, 15815 visits
摘要:说到网站性能优化,没有什么比“缓存”更重要了。即便是某些朋友口中念念不忘的“静态页”,说到底也只是缓存了整张页面内容而已。但是,显然这样大粒度的缓存策略,在如今“牵一发而动全身”的Web 2.0站点中几乎是无法使用的。视图片断缓存,缓存的也是页面内容,它比更低级别的缓存更有效率,也比静态页等整页内容缓存的适用面要大得多。在Rails或Django中都有类似的功能,但ASP.NET MVC甚至在2.0的Road Map中还没有包含这一功能,我们只能自己动手丰衣足食了。不过有了ASP.NET WebForm作为强大的视图引擎,加这样的功能简直是举手之劳。 阅读全文

趣味编程:将事件视为对象(参考答案)

2009-09-17 09:48 by 老赵, 12924 visits
摘要:这次我们是要编写一个DelegateEvent对象,提供它AddHandler和RemoveHandler的实现。事实上,在之前还有一篇文章中,我们搞了一个人模狗样的构造方式,但是它往往不适合用于实际使用过程中。因此,其实DelegateEvent最关键的地方还是各种不同的“构造方式”,使它可以用于各种情况。 阅读全文

ASP.NET WebForm页面内容输出方式

2009-09-16 14:41 by 老赵, 15820 visits
摘要:这次我们谈的话题是“Web Form页面上输出内容的方式”。这其实是一个非常旧的话题了,因为本文的内容甚至可以运用于ASP.NET 1.1之上。不过这个话题的适用范围很广,因为即使是目前最新的ASP.NET MVC框架,它的默认视图引擎依旧是基于ASP.NET WebForm的(如Page,Control,MasterPage)。甚至说,由于ASP.NET MVC框架的特性,我们会遇到更多在页面上“直接输出”内容的情况。因此,这个话题在ASP.NET MVC应用中可能由为重要。 阅读全文

Get Ready for Real World ASP.NET MVC

2009-09-16 13:37 by 老赵, 13000 visits
摘要:2009年的TechED大会即将在北京举行(11/5 - 11/7),其中有我的一个Session。我将其命名为“Real World ASP.NET MVC”,希望可以分享一下自己在ASP.NET MVC方面的使用体会。现在,希望大家可以给我一点帮助。例如,您在使用ASP.NET MVC开发Web应用程序时有没有遇到什么困难?您认为ASP.NET MVC哪方面还无法让人满意?各个方面都可以。 阅读全文

趣味编程:C#中Specification模式的实现

2009-09-15 20:15 by 老赵, 14495 visits
摘要:Specification模式的作用是构建可以自由组装的业务逻辑元素。多个Specification对象可以组装起来,并生成新Specification对象,这便可以形成高度可定制的业务逻辑。例如,我们可以使用依赖注入(控制反转)的方式来配置这个业务逻辑,以此保证系统的灵活性。但是Wikipedia上提供了非常旧的内容,很可能是在C#只是1.0版本的时候编写的代码(或者说它为了“兼容”Java那种语言的实现方式)。那么在实际开发过程中,我们又该如何利用C#如今的强大特性来实现出更容易使用,甚至是更为“轻量级”的Specification模式呢? 阅读全文

WebFormView的标准修改办法及MvcPatch项目

2009-09-15 12:11 by 老赵, 12554 visits
摘要:上一篇文章中我提到WebFormView的实现破坏了IView对象设计思路,它会把视图内容直接生成至HttpContext.Current而不是Render方法指定的TextWriter中。之前我提出了一种非常临时,非常山寨,非常简陋,绕弯,但是可行,或者说是可以“表现出解决问题的方法”的代码,而这次我们来做一次“标准”的修改。此外,我还创建了一个MvcPatch项目来保存这些内容。 阅读全文

应该算是WebFormView的一个Bug

2009-09-14 15:33 by 老赵, 12881 visits
摘要:最近需要搞一些重要的功能,结果又遇到了意料外的障碍。于是又仔细地看了看ASP.NET和ASP.NET MVC的源代码,又发现了以前不曾知道的一些细节。其实ASP.NET为我们留下了不少切入点,但几乎没什么书会提到这些切入点,我们只能从微软自己的框架中一探究竟。不过这次我想谈的是ASP.NET MVC框架中的一个Bug,这个Bug在一般情况下不会出现问题,但是这的确违反了ASP.NET MVC自身的设计。这个问题就出在WebFormView对象的实现上。 阅读全文

MIT 6.00 Introduction to Computer Science and Programming, Fall 2008

2009-09-14 10:02 by 老赵, 15044 visits
摘要:SICP的替代品,终于有了进一步完整的消息。看着教授用苹果在明亮的教室里讲课的感觉,的确比看之前的视频要舒畅很多。很憧憬MIT的这类顶级学府的学术氛围,虽然这个梦想似乎越来越遥远了。 阅读全文

检查几个程序集中的internal成员

2009-09-13 23:17 by 老赵, 12475 visits
摘要:两个星期前我写了一篇文章谈到一个现象(或是感觉):我发现“类中的internal成员可能是一种坏味道”,原因在于违反了“单一职责”原则。然后谈了一般情况下遇到这种情况时一种可用的重构方式之一。结果自然是有人同意有人反对。不过刚才我忽然想到,不如检查一下微软的框架中internal成员的情况吧。微软最近几个框架都公开的源代码,社区反响不错,应该较为值得参考。 阅读全文

基于DelegateEvent创建第一个IEvent对象

2009-09-11 13:47 by 老赵, 12563 visits
摘要:继续和“事件即对象”打交道。我们之前提到过两个“趣味编程”:DelegateEvent与Functional Reactive Programming,现在我们在它们两者之间架起一座桥梁。也就是说,我们要从一个DelegateEvent对象创建一个IEvent对象出来。这样,您就可以把它作为第一个IEvent对象,继续尝试Functional Reactive Programming了。 阅读全文

如何创建TextWriter的子类

2009-09-11 00:42 by 老赵, 12813 visits
摘要:如果您需要继承TextWriter实现自己的类型,您会怎么做?继承TextWriter不难,不过接下来,您打算覆盖(override)掉哪些方法?从Reflector的观察结果发现,其中所有的方法最终都会委托给Write(char)方法。但是只覆盖Write(char)方法只能保证最终成果“可以运行”,却无法保证是最优秀的结果。但是又有谁可以告诉我,究竟该怎么做呢? 阅读全文
< Prev 1 ... 12 13 14 15 16 17 18 19 20 ... 31 Next >
使用Live Messenger联系我