Hello World
Spiga

我对NHibernate的感受(4):令人欣喜的Interceptor机制

2009-10-13 13:45 by 老赵, 20700 visits
摘要:之前谈了NHibernate的几个方面,似乎抱怨的居多,不过这次我想谈一下我对Interceptor的感受,则基本上都是好话了。这并不一定是说Interceptor设计的又多么好(事实上它使用起来还是挺麻烦的),但是这的确也是我认为NHibernate超越LINQ to SQL,尤其是Entity Framework的又一个重要方面——因为Entity Framework本身也已经不差了。更重要的是,Interceptor机制让我得以实现我“理想中的”数据访问功能。当然现在只是浅尝辄止一番,我打算以后再慢慢地,详细地谈谈我所满意的“数据访问层”设计。 阅读全文

浅谈Route规则名称的作用,及MvcPatch的处理方式

2009-10-13 10:00 by 老赵, 16407 visits
摘要:国庆前的最后一天,我写了《关于ASP.NET Routing的几点内容》,其中谈论了ASP.NET Routing作用,设计目的,工作流程等等。不过我还有一个比较重要的东西一笔带过了,不知道您注意到了没有,在向ASP.NET Routing的RouteTable.Routes属性(一个RouteCollection对象)中添加Route规则的时候,我们会同时指定一个“名称”。在微软给出的官方“广告”中,似乎看不出这个名称有什么用。但事实上,它的功能非常关键。 阅读全文

趣味编程:从字符串中提取信息

2009-10-12 14:20 by 老赵, 20416 visits
摘要:字符串解析是程序员工作中非常重要的一部分,也是非常考验编程能力的工作。基本上我在面试程序员的时候,一定会出一道编程题目作为考察的一方面,而这道题目有很大的可能性是做字符串的解析。例如,给出一个模式规则,要求写程序判断某个字符串是否符合特定格式。例如,要求将BB Code转化为HTML。而现在这个趣味编程题,来自于我目前正在进行的项目。因此从实用角度来说,也有一定现实意义。 阅读全文

NHibernate自定义集合类型(下):自动维护双向关系

2009-10-12 00:49 by 老赵, 16439 visits
摘要:如果使用NHibernate自带的集合类型,其中一个问题就在于需要在代码中手动维护双向关系,迫使开发人员编写额外的代码。其实这就是集合自定义逻辑的一个应用方面。现在,既然我们已经得到了一个方便的自定义集合的解决方案,那么现在便把“自动维护双向关系”作为目标来实现一番,也算是一个非常典型的示例了。 阅读全文

NHibernate自定义集合类型(中):通用实现方式

2009-10-11 11:27 by 老赵, 16472 visits
摘要:上一片文章中我们观察了在代码中自定义一个基于Set的集合类型该怎么做,以及简单了解了一下NHibernate的这些自定义支持大致是如何工作的。不过文章最后还是留了两个问题,一是认为这种扩展方式不够通用,二是其中会出现的“重复”或是“反向依赖”。现在我们就需要在上文的基础上进行总结,提出一个通用的实现,可以方便我们构建自定义的集合类型。 阅读全文

NHibernate自定义集合类型(上):基本实现方式

2009-10-10 10:54 by 老赵, 24551 visits
摘要:前天一篇文章中我说NHibernate的集合类型实现有些“尴尬”,它无法使用自定义集合类型,设计也有些古怪——不过在许多朋友的指点下,我意识到NHibernate是可以使用自定义集合类型的。至于它的设计是否合理(或者说是用是否方便?)……这就是这几篇文章中想要探讨的内容了。不少朋友给出了一些自定义集合类型的示例链接,我参考之余也自己找了一些资料,慢慢尝试,也终于有了一些体会。 阅读全文

最受欢迎中国技术博客评选(PB50)结果公布

2009-10-09 18:36 by 老赵, 17710 visits
摘要:国外有博客评选榜单,记得之前也有人提议国内也做一下类似的评选。这不,ZDNET搞了一个。现在结果终于揭晓了,看看有几位是您已经知道并订阅了呢?不过,我还是感觉大部分的博客更新的实在不够频繁,这和人家世界级的榜单差太远了啊,兄弟们还得努力才是。 阅读全文

尝试使用IKVM运行Lucene 2.9.0版

2009-10-09 15:26 by 老赵, 13453 visits
摘要:上月末Lucene发布了2.9.0版,这个版本的改进比较明显,主要是各方面性能的增强,以及对数字字段范围查询的直接支持。这个版本还有个重要的意义,就是它标记了Lucene 3在API上的改变,及早跟进的话对Lucene 3的未来接受程度会比较好。Lucene的更新很慢,而移植到.NET平台上的Lucene.NET的二进制发布则更是一直停留在07年三月的2.0版本。虽然我们可以通过svn获取到Lucene.Net 2.3.2的源代码自行编译,但这次我还是想直接使用最新的2.9.0版本。最终我决定趁这个机会尝试一下IKVM.NET。 阅读全文

我对NHibernate的感受(3):有些尴尬的集合支持

2009-10-08 21:59 by 老赵, 15303 visits
摘要:既然是一个ORM框架,那么自然是将O这一端映射R上。至于集合,是O这方面最常见,也是R这一边非常容易表示的关系。例如,一个问题(Question)可以包含多个回答(Answer)。不过,NHibernate需要“一锅端”地设置集合属性,它没有保留自定义集合的逻辑。此外,在更新集合数据的时候,它也会出现多余的数据加载。 阅读全文

关于ASP.NET Routing的几点内容

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

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

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

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

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

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

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

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

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

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

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

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

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

幻灯片:LINQ Inside, Part 1

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

语言特性与API设计

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

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

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