实战 .Net 数据访问层 - 18

原创 2004年05月09日 10:49:00

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

谈了些实现问题,来说说几个题外话:

(1)    性能问题Cache Management能显著提高数据访问效率,但对内存的要求比较高,尤其是在Web ApplicationRemoting Server这种应用环境下!

所以,这就要求我们应该将“”用在“刀刃”上(对内存毫不在乎者除外J),不能乱花钱!

一般,对于系统数据(如:应用 / 模块,组 / 用户 / 权限等)或Lookup Data(如:婚姻状况列举 / 政治面貌列举等),可以考虑放入Cache;另外,如果客户(请注意:不是开发人员!)认为变动可能性较小或频率不高的Business Data也可以考虑放入Cache

(2)    手工刷新Cache是把双刃剑,带来便利的同时也增添烦恼。“手工刷新数据”可能就是其中最麻烦的事情!

在系统调试阶段,我们还可以通过关闭Cache功能(在配

置信息中注释掉相关内容)来避免这个问题,可一旦上线,

就只能通过其它方式进行解决了!

 

在这里,作者先试着给出3种解决方案:

i.                     对于Web Application,可以利用.NET Framework提供的Dependency机制将Cache绑定至文件系统,一旦数据变化,只需更新相关文件或目录信息即可达到Cache Refresh目的(不符合Ease of Use标准L)!但对于Windows ApplicationDependency就需要自己实现了L

ii.                   可以使用Observer Pattern将所有的Data Access Logic更新操作进行登记,一旦调用更新方法,立刻执行相关delegate以更新Cache Data

这或许是一个对客户最为友好的解决方案(有个限制

条件:客户不能直接修改Database数据J),但对开

发人员却是一个无尽的“折磨”(整天提心吊胆,总

担心忘了登记L)!

iii.                  自己实现一个UI,对Cache Data进行Refresh Management!这是个介于上面两种方法间的折衷方案,也是作者比较倾向的一种思路(当然了,如果哪位朋友有兴趣将上面3种统统实现并有机整合之,那就功德无量了J)。

 

 

最后,奉上作者机器上的Cache部分配置信息供各位参考:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <dafConfiguration>

       <dal>

           <class name="CustomerDal_ORM">

               <method name="GetAllCustomers"

DistributionType="REMOTING"

cacheitem="allcustomers" />

           </class>

       </dal>

       <cache>           

            <group name="business">

                <item name="allcustomers">

<webapp absoluteExpiration="12.0,hour"

priority="High" />

                    <winapp accessCount="2" />

                </item>

            </group>

        </cache>

    </dafConfiguration>

</configuration>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

下一段:http://www.csdn.net/develop/Read_Article.asp?id=27562 

.net中的数据访问层的封装

当年.net项目中自己封装的数据访问层,个人感觉使用非常方便
  • kevin_xf
  • kevin_xf
  • 2016年12月05日 15:53
  • 764

Asp.net mvc 数据访问层

理解了一些概念,本节开始尝试创建属于自己的数据访问层,说道数据访问层那必须有数据库咯(数据集合也算,此处以数据库为例),没有数据库就没有数据访问层。 1、先创建属于自己的数据库       打开已...
  • u013108485
  • u013108485
  • 2016年04月14日 16:19
  • 4869

C#进阶ADO.NET基础四 复习、DBNull、三层架构只数据访问层

一、复习配置文件、SqlHelper,自己重新写一遍。 二、数据库中的Null问题 数据库中的Null为不知道。 1、给数据库中写入Null数据 需求:如果没有输入姓名和年龄,要在数据库中显示...
  • tufeiax
  • tufeiax
  • 2015年06月10日 22:57
  • 792

数据访问层的设计(一)——功能与接口定义

数据访问层的设计我研究了很长时间,关于接口的定义,好几次都推翻重来。 园子看到过很多easyui+MVC+EF的文章,在早期,我的设计也类似。 但是后来为了增强它,想加点功能通用的功能进去,就耗费...
  • dyllove98
  • dyllove98
  • 2013年07月19日 19:19
  • 7941

数据访问层的设计和实现(分布式系统七)

(1)如何对外提供数据访问层的功能 数据访问层就是方便应用进行数据读写访问的抽象层,在该层上解决各个应用通用的访问数据库的问题。 上图显示了三种方式,第一种是为用户提供专有API,不过不推...
  • u011393781
  • u011393781
  • 2016年10月08日 17:41
  • 1480

三层架构:表示层-业务逻辑层-数据访问层

三层架构和MVC是两个东西。 非要相关的话: 三层架构中"表现层"的aspx页面对应MVC中的View(继承的类不一样) 三层架构中"表现层"的aspx.cs页面(类)对应MVC中的Co...
  • ruiguang21
  • ruiguang21
  • 2016年12月25日 11:29
  • 2077

分布式数据访问层(DAL)

概述分布式(Distributed)数据访问层(Data Access Layer),简称DAL,是利用MySQL Proxy、Memcached、集群等技术优点而构建的一个架构系统。主要目的是为了解...
  • xcbeyond
  • xcbeyond
  • 2017年02月11日 00:46
  • 1340

数据访问层MyBatis解析

一、背景         最近在研究Java的框架,刚刚接触到java对于数据访问层封装的框架之一,MyBatis,不得不说使用起来很是方便,跟写sql语句的感觉一样一样的;顺便读了少部分官方文档,...
  • u012704843
  • u012704843
  • 2017年04月06日 17:46
  • 864

三层架构:表示层-业务逻辑层-数据访问层

三层架构和MVC是两个东西。 非要相关的话: 三层架构中"表现层"的aspx页面对应MVC中的View(继承的类不一样) 三层架构中"表现层"的aspx.cs页面(类)对应MVC中的Co...
  • m0_37033566
  • m0_37033566
  • 2016年12月21日 16:50
  • 9868

黑马程序员:数据访问层,DAO模式

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- DAO模式好处,组成 1.软件开...
  • u011004873
  • u011004873
  • 2013年10月13日 17:09
  • 1106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实战 .Net 数据访问层 - 18
举报原因:
原因补充:

(最多只允许输入30个字)