把数据源看成一个Service
2004-12-21 15:45
225 查看
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发送邮件给我,并在邮件中附上相关信息(详见回复)。
作者在这篇文章中表达了一种观点,即数据源与其说是整个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发送邮件给我,并在邮件中附上相关信息(详见回复)。
相关文章推荐
- 开发一个好项目:五、创建数据源,创建网络数据Service和网络数据源
- 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的
- 【学习笔记】把一个数字看成字符串,问它是不是一个回文数?
- C#制作Windows service服务系列二--演示一个定期执行的windows服务及调试
- 构建一个datatable,把datatable作为数据源绑定
- 关于Spring中初始化一个静态变量(需要调用Service层然后从数据库查出来的)
- sql2005 reporting service,我总算找到一个完全程序化绑定报表(ado.net dataset 绑定reprot)的方案,谁能再给我些其他建议呢?
- C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试(windows service)
- NServiceBus的一个Bug?
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- 安卓服务——bind service一个绑定式的服务
- 建立一个 C#.Net Windows Service 程序
- 当一个service无法启动时,应该怎么去解决,以haproxy为例
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- 用IntentService写一个应用切到后台也正常运行的Service
- 一个ServiceHost寄宿多个服务
- 设计并实现一个LogService,应用开发时可以打印log到视图(TextView)中显示
- Azure一个Cloud Service支持多个公网地址
- 怎么写一个native层的service