新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> 开发语言 >> 文章正文

扩展Enterprise Library 缓存应用程序

在它的原始状态中,缓存应用程序块在典型的缓存情况下工作得很好,然而,许多时候你不得不定制应用程序块的某些行为以更好的适用于应用程序的特定环境。在此有二种方法可以用来定制:扩展和修改。

扩展应用程序块
可以通过指定扩展点来扩展应用程序。通常,可以定制一个实现了特定接口或从一个抽象类派生出的类。因为那些定制类存在于你的应用程序空间中,所以不用修改或重建应用程序块,而是使用配置设置来指定扩展点。

可以用添加一个新的后端存储类型或新的到期策略来扩展应用程序块。更多信息,请参见添加新的后端存储和添加新的到期策略。

修改应用程序块
可以通过改变应用程序块的源代码来修改它,这可能也可能不需要相关配置的改变。因为修改是相对于源代码的,所以在修改起作用之前必须重建应用程序块。同样也必须准备处理支持和版本发布。更多信息,请参见修改缓存应用程序块。

添加新的后端存储
要添加一个新的后端存储,可以实现一个实现了 IBackingStore 接口或者从 BaseBackingStore 抽象类继承的类。必须保证你的实现在任何操作访问后端存储时如果发生异常,后端存储也依然是完整的。

因为 Cache 对象的操作方法,要保证任何后端存储都要以单线程的方式被调用。这意味着你的实现可以不是线程安全的。

添加新的到期策略
缓存应用程序块允许添加自己的到期策略,可以构建一个实现了下列接口的新类来完成此目的:

ICacheItemExpiration
此接口让开发人员实现他们自己的到期模式。它是一个应用定义的管理一个CacheItem 对象如何以及何时可以到期的规则的接口。

ICacheItemRefreshAction
此接口刷新一个过期的缓存条目。

ICacheItemRefreshAction 接口定义了必须实现的创建一个对象的规约,这个对象刷新来自缓存的到期的条目。实现的类必须是可序列化的。在实现此接口时,确认它仅维护有关它的环境需要的状态量,因为环境的所有部分都将被序列化,维护过多的状态将导致巨大的对象图。

修改缓存应用程序块
缓存应用程序块为用于各种应用程序和通用目的的缓存而设计,扩展点可以使你适配应用程序块满足任何特殊应用程序的需求。然而,如果要添加新的特性到应用程序块中,就可以修改其源代码来达到目的(安装程序包含了源代码和二进制)。在这种情况下,将按照下列建议来修改。

修改缓存应用程序块的建议
在修改源代码时,下面是最好的实践经验:

通过阅读文档中的缓存应用程序块设计节来确认你理解了应用程序块是如何工作的。

如果显著的改变了源代码,或者要将应用程序块的定制版本与原始版本一起使用的话,考虑改变缓存应用程序块的命名空间。请注意,修改应用程序块的命名空间将需要修改所有使用了缓存应用程序块的其他应用程序块和应用程序的命名空间。

使用强名称。强名称可以唯一标识程序集、版本和验证完整性。这将不得不生成自己的密钥对来签名修改了的应用程序块版本。更多信息,请参见强命名程序集和版本指南。另一种选择是,可以选择不签名定制的版本,这可以被引用为弱名称。

要使修改起作用,必须重新编译修改后的源代码。

作者:未知 | 文章来源:博客园 | 更新时间:2007-10-30 10:42:09

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    改善提高应用程序的质量
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·搜集整理的asp.net的验证方
    ·各种FOR循环结构的整理
    ·软件项目开发中应该考虑那
    ·搜集整理的javascript sel
    ·软件开发中项目经理有那些
    ·学习如何在Lambda表达式进
    ·C++基础知识:结构体数据的
    ·C#实现短信发送程序的例子
    ·sun最近修补了一部分java的
    ·rss定制的另外一种实现方式
    ·delphi实现利用arp欺骗来实
    ·基础学习:基于WF的流程框
    ·网络编程中怎样得知一次数
    ·如何逆序输出单链表?
    ·软件开发过程中的性能设计
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000