Rockford Lhotka在ServerSide.Net上发表了一篇文章《The Fallacy of the Data Layer》(博客园的朋友已经将此文翻译成了中文)。
作者在这篇文章中表达了一种观点,即数据源与其说是整个Application中的一个Layer(Tier),不如把数据源当作Application之外的一个单独的Service。作者将Application这个词定义为:“an application is hereby defined as a set of code, objects, components, services, layers or tiers that exist within a trust boundary.”就是说,一个Application的内部是紧密联系的、互相信任的一组内容。Layer可以看作Application内部的一种层次。而数据源(通常是SqlServer之类的数据库)在真实世界中,并没有将它“完全包裹”在一个Application的里面,而是可以被其他Application(或者叫其他Service)访问的。
其实作者的观点并非什么“惊世骇俗”,在很多情况下,我们早已经把Data Access Layer和Data Source 分来了,Data Source作为一个单独的“服务”存在于系统之外的某个地方,而且可以作为“插配件”一样更换和替代。我的个人观点更倾向于把Data Access Layer叫做Persistent Layer,持久层。在Application内部,我们看到的只是反映客观世界的Entity,对数据库“一无所知”,在需要保存Entity时,由持久层负责将Entity持久化,至于它是如何将它持久的,对于Domain Logic来说,没有意义。
About VS2005:
最近VS2005的各种测试版本开始满天飞,包括Yukon的各种测试版本,越来越“混乱”了(可怜我手头的Indigo组件还点名需要PD6版本...),在11月份的VS2005 CTP之后,12月份的CTP也快要出来了。如果想等稳定的版本,期待明年2月份的Beta2 Release吧!:)
再附,To Office MVPs:
OTEC(Office技术专家俱乐部)成员名单即将确定,请有意参加的Office MVPs发送邮件给我,并在邮件中附上相关信息(详见回复)。