zhuweisky

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。
ESFramework,基于.NET的通信框架。DataRabbit,轻量的数据访问框架。DCFramework,基于.NET的动态分布式计算框架。sky.zhuwei@163.com

统计

留言簿

积分与排名

好友博客

阅读排行榜

评论排行榜

DataRabbit 轻量的数据访问框架(12)-- 将DataRabbit融入架构

   在我的架构经验小结(三)-- 深入三层架构 一文中,我们详细的讨论的三层架构,本文将介绍如何将DataRabbit融入到三层架构中的经验。

   DataRabbit包括三个项目:DataRabbit.Basic、DataRabbit、DataRabbit.Application。它们的层次关系如下:
 
   DataRabbit.Basic提供了一些最基础的元素定义,比如IsmartEntity接口、EntityAttribute特性等。
   DataRabbit是DataRabbit框架的核心,所有的数据访问器(Accesser)都在其中定义和实现。
   DataRabbit.Application主要是为了方便应用而做的一些封装,如TransactionScope、TransactionScopeFactory等。
   
   通常的三层架构包括:UI层、BL(业务逻辑)层、数据访问层(对应图中的BEM层)。Entity层不属于三层架构(为此我将其称为“侧层”),但是各层之间通过Entity object在来传递数据。所以,UI、BL、BEM都依赖于Entity侧层。
   Entity侧层需要引用DataRabbit.Basic程序集来实现其中的IsmartEntity接口以使得Entity具有“Smart”的能力。注意,Entity侧层不需要引用DataRabbit、DataRabbit.Application程序集。
   BEM层即通常的数据访问层,由于它需要提供核心的数据访问能力,所以它肯定依赖于DataRabbit程序集,它借助于DataRabbit来实现数据访问。另外,由于BEM通常都需要在事务上下文中执行,所以,它需要使用到DataRabbit.Application中定义的TransactionScope类。
BL层用于开启一个事务、并执行一个完整的业务流程,所以它需要依赖DataRabbit.Application。特别要注意,BL层不需要引用DataRabbit.Basic和DataRabbit程序集。

   下图简明地反映了将DataRabbit融入到三层架构后的依赖关系:

   我在实践中,要求严格遵守上述的依赖关系,不得出现跨层调用或图中未指出的依赖,这对整个系统的结构维护是非常关键和有利的。


   (插一点题外话,有很多朋友要求给出一个关于使用DataRabbit的完整示例,非常感谢我的朋友getsun已经帮我完成了这件事情,大家可以到此下载示例的所有的文档和源码。)

转到:DataRabbit 轻量的数据访问框架 -- 序 

posted on 2007-04-02 17:05 zhuweisky 阅读(3036) 评论(0)  编辑 收藏 网摘 所属分类: DataRabbit




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 697216




相关文章:

相关链接: