快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

.NET缓存初步

.NET缓存初步
ZDNET CHINA|2002-4-24
.NET的cache类可以为微软输出工具箱增加许多典型的缓存功能。在很多开发细节中,cache类可以节约时间,当然它也有很多缺点,比如,要限制一些要害字类型。但是,假如使用得当,它还是可以节约时间。本文中,我主要解释一下如何构造cache,同时,解释一下在必要时如何构造属于自己的cache。

Cache基本知识
cache是用来存储常用信息的高速存储器,使用cache的目的就是要提高系统性能。比如,要开发ASP.NET应用软件以实现许多用户所要求的一样产品列表功能,就要用到cache来存储产品列表。这样可以防止你重复从数据库中读取信息,否则就要降低系统速度、降低性能。

.NET工具箱外caching
.NET中有一个cache类,位于系统Web caching中,ASP.NET中每一个Web Form object都有一个叫做System.Web.Caching.Cache的cache,这是一个叫做item的默认参数化设置。Item会接收很多参数已确定对象已被插入或提出。问题的要害是确定了cache数据。在下面的例子中,要害值“Alphabet”定义了一个可以放在cache中的长量。利用要害值可以从cache中恢复长量。

在这种情况下,记住MyClass代表Web Form object

就象例子中看到的那样,Cache object有item特性。这一特性是object的默认性质,因此在代码中可以省略。但是这种情况是还存在一定危险性。点击这里可以看到代码中的一些默认设置。

假如想要选取捷径,可以减少代码:

MyClass.cache(“Alphabet”) = s

编辑器认为这些代码都是默认值设置,也就是值为“default”。

一旦这些长量放到cache中,就可以得到下面的值:

s = MyClass.cache (“Alphabet”)

假如想用Web Form外面的值,就可以设置一个新的cache对象,假如正在使用Visual Studio.NET的RTM 版本(Manufacturing 或 Commercial Release),可以用下面的设置:

c = new System.Web.Caching.Cache()

创建完cache之后,就可以使用insert或add命令为其设值,当然,也可以利用get命令从cache中恢复对象。

创建自己的cache
也许你担心使用微软的cache会降低系统性能,或者你需要某一要害类型的cache而不是一个长量。(这一限制是System.Web.Caching object的一个缺陷),或者你只是出于好奇想做个试验。

不管什么原因,你就是想创建自己的.NET cache。首先来看看如何创建最基本的、能够存储某些值的cache。在下面的部分里,将要解释一些最基本的cache,同时清除一些不必要的功能。

要创建自己的cache,首先要了解一下HashTable object。HashTable是System.Collections namespace中的一个collections对象,从概念上来理解,object就像是一个档案柜,你可以把object放在档案柜中,同时也可以按类别把它们重新恢复回来。Hashtable object答应object插入和恢复。

现在可以定义一个名为CustomCache的新的类,采用HashTable来存储objects并把它放到cache中,CustomCache有两种方法:名为insertCachedObject的子程序和名为getCachedObject的函数。插入法可以有两个参数:key和object,getCachedObject却只能有一个参数:key(见Listing A)。

CustomCache object中定义了表A所要求的代码:创建CustomCache object并优先使用它。假如只想创建单一模式的cache,也就是所有的代码都能采用同一cache,那么就可以改变Listing B中的object。

注重Listing B中在Hashtable前增加共享要害字,比如增加一些方式和构造器。可以增加第二个private构造器来防止代码创建CustomCache object。现在所有的代码都共享一个HashTable类而无需创建一个CustomCache。就像Java中静态要害字相同,共享要害字也发挥同样的功能,.NET中的共享构造器与Java中的静态模块相同。

Listing C中的例子是一个采用CustomCache来存储和恢复长Alphabet量的程序。

现在一个简朴的cache已经完成了。它不能提供在一段时间后自动终止item的功能,同时它也不能实现跟踪最近使用的objects、caching以及其他使用数据,但是这只是一个起点。在以后的文章中,我们会进一步讨论这一问题以及.NET其它的cache功能。




返回类别: 教程
上一教程: ASP.NET中利用存储过程实现模糊查询
下一教程: .NET 对 J2EE[2]

您可以阅读与".NET缓存初步"相关的教程:
· .Net 缓存代理类 的初步考虑.
· ASP.NET中数据库的操作初步(2)
· ASP.NET中数据库的操作初步(1)
· .net缓存应用与分析
· ASP.NET中数据库的操作初步(3)
    微笑服务 优质保证 索取样品