DTS开发记录(2)-- 数据管道及插件

系统 1730 0
通过前面两篇文章(已于2006-07-03修正)的介绍,我们已经大致明白了系统的目标的总体结构,从这篇文章开始,我们将逐渐深入到系统内部。

本文讲述数据管道,数据管道是用于在数据源/数据目标与DataTable之间进行数据传递的组件,它是与数据库类型和文件类型相关的,数据从数据源经过数据管道后,就变成与数据源类型无关的数据了,这样映射编辑和数据引擎便能对它们进行一致的处理。
数据管道接口定义的类图如下:
DTS开发记录(2)-- 数据管道及插件

数据管道接口IDataPipe从另外两个接口继承:数据导入器(IDataImporter)和数据导出器(IDataExporter)。数据导入器用于从数据源读取指定页的大小的数据到DataTable中。为何要分页读取数据,那是因为当数据源中的记录非常多时,一次读取并传递所有的数据是不合适了,这时可以采用分页进行分批数据处理。数据导出器用于将数据导出到数据目标。

目前,我们的数据源/数据目标可以分为两大类:文件和数据库。所以,从IDataPipe派生了两个接口--IFileDataPipe和IDbDataPipe,用来分别对应连接到文件的数据管道和连接到数据库的数据管道。
为了根据文件或数据库的类型来创建合适的数据管道,所以我们需要一个工厂IDataPipeFactory来完成这件事:
DTS开发记录(2)-- 数据管道及插件

可以预见,在以后的应用中会有更多的数据库类型和文件类型加入进来,为了避免每次加入一个新的数据库类型或文件类型时都需要改动系统源码并重新编译发布,我们将数据管道做成插件(Addin),这样当我们需要支持一种新的文件类型或数据库类型时,只需要添加一个插件即可,原来的系统不用修改和重新编译。
DTS开发记录(2)-- 数据管道及插件

于是,我们可以借助插件管理器IAddinManager(参见 ESFramework 插件部分)来实现数据管道工厂IDataPipeFactory。

许多朋友一定觉得这篇文章讲的太粗,这是我刻意为之的。很抱歉!因为这毕竟不是一个开源项目,它的所有权也不属于我个人(尽管它完全是我个人一手设计的),而是属于我现在所在的公司,所以我只能点到为止,介绍一些原理性的东西,供后来者参考。


转到: DTS开发记录(序)

DTS开发记录(2)-- 数据管道及插件


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论