net分布式架构开发实战之三数据访问深入一点的思考

net分布式架构开发实战之三数据访问深入一点的思考

ID:27520210

大小:114.65 KB

页数:9页

时间:2018-12-03

net分布式架构开发实战之三数据访问深入一点的思考_第1页
net分布式架构开发实战之三数据访问深入一点的思考_第2页
net分布式架构开发实战之三数据访问深入一点的思考_第3页
net分布式架构开发实战之三数据访问深入一点的思考_第4页
net分布式架构开发实战之三数据访问深入一点的思考_第5页
资源描述:

《net分布式架构开发实战之三数据访问深入一点的思考》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、[原创].NET分布式架构开发实战之三数据访问深入一点的思考.NET分布式架构开发实战之三数据访问深入一点的思考前言:首先,感谢园子里的朋友对文章的支持,感谢大家,希望本系列的文章能够真正的对大家起到一点帮助的作用。再次感谢大家。大家也许想问,什么吋候出代码,代码一定会出的,我不想一上来就开始抛出一大堆的代码,然后讲解,架构的设计在思考的过程,思考到了,代码也就水到渠成了。上篇文章讲述在设计之初,Richard所画出的一些草图,本篇对之前的草图做了进一步的思考。本篇的议题如下:1.草图的一些问题

2、在哪里2.重审之前项目屮数据层的问题3.思维的一点突破4.回首再看数据访问层草图的一些问题在哪里ServicesInterfaceDALDataHelperCacheExceptionHandlerLogSecurityServiceAgentDataTranslatorServicesf~u~Databasek)c>XML,PlainFile当Richard把草阁画出来了之后,想到了另外的一个问题:在DAL数据层之问提供的那个接U层到底应不应该是ServicesInterface。其实这个接

3、U层是普通的Interface屋还是ServicesInterface,Richard也拿不定主意的,因为当初之所以要把这个接口层改为ServicesInterface,是因为在数据源提供者"(ServiceAgent)那块给了他“灵感”一一数据源讨以使用远程的Services。基于这个思想,所以Richard也考虑到Y:也许,现在设计的这个DAL,哪一天会作为服务给其他的程序提供数据也不说定。虽然,这个问题对现在来说不是那么的重要,但是在Richard的心里,无法说服自己到底使用哪一种接口层(

4、也许是Richard这个人的性格有关吧,一定要给个理山说服自己,但是这个理由又不能随随便便的糊弄自己)。Richard想到Y之前在开发项目的时候,也确实曾经把其他公司提供的服务作为数据源的情况。当时的调用虽然只显进行査询,增加,删除,修改的简中.操作,但是很多的流程己经在服务提供者那边定义好了,例如在发送一•批货物的吋候,Richard只是调用了服务接口的一个CreateProduct(Productproduct)方法,但是在服务器那端却做了很多的事情:计W库存,生成订单,选择货物供应商等等。

5、这样说来,如果现在Richard把DAL上而加上一个ServicesInterface层,那么DAL或者其他的层就必须提供很多的逻辑操作,或者不一定是逻辑操作,还可以是数据格式验证、身份验证。如果真的这样设计,那么数据层的做的事情就很多了,要很多的逻辑。而这些逻辑在BLL中进行才是比较好的选择,想到这里,Richard似乎开始明白:把ServicesInterface层放在BLL层之上。这样就可以充分的利用BLL的逻辑验证功能。所以DAL之上的接口层,还是决定采用普通的接口。2.重审之前项目中数

6、据层的问题Richard在数据层DAL这块花了大量时间来思考,其实是有原因的。在之前的项目屮,数据层的设计显得很臃肿,而且在Richard看来,这些代码己经可以用一种比较通用的方式来写,没有必要写那么复杂的代码。例如,在EmployeeDAL中有以下的方法:E曰代码publicEmployeeGetEmployeeByld(stringemployeeld);publicEmplpyeeGetEmployeeByName(stringemployeName);publicstringGetEmp

7、loyeePositionByld(stringemployeeld);publicintGetEmployeeCount();这样写,没有错。但是有一点引起了Richard的思考:DAL类屮,很多的方法基本上都是查询的方法,而Add,Update,Delete在很多的DAL类屮形式都比较的统一,特别是在使用了Linq,EntityFramework之后,所有的数据实体类Add,Update,Delete方法几乎是一祥的,如在Linq屮可以使用DataContext.GetTable().

8、lnsertOnSubmit(entity)方法来插入任何的数据实体类。但是就只有这些不同条件的查询方法很难统一,几乎是每个不同的DAL都要去实现自己的一些特有的查询方法。但是Richard认为把这些方法统一是有对能的,甚至是达到那种“以不变应万变的”效果才好,带着这个想法Richard开始进行很多的尝试。3.思维的一点突破Richard极力的在自己的脑海搜寻解决的方案,也翻阅自己之前下载和买过的书籍,看看那些是否与查询数裾有关,只要看到有“查询”两个字的章节,Richard就不会放过。也参看了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。