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 轻量的数据访问框架 -- 序 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值