ASP.NET 3.5宝典 样章分享
7.1.1  缓存技术概述
在网站应用中,网站的应用程序可以将频繁访问的数据以及需要大量处理时间来创建的数据存储在内存中,从而提高网站的整体性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表以便可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使得工作效率低下。
为了提高应用程序的性能,ASP.NET使用两种基本的缓存机制来提供缓存功能。第一种机制是应用程序缓存,它允许缓存所生成的数据,如DataSet或自定义报表业务对象。第二种机制是页输出缓存,它保存页处理输出,并在用户再次请求该页时,重用所保存的输出,而不是再次处理该页。
u    页输出缓存:页输出缓存在内存中存储处理后的ASP.NET页的内容。这一机制允许ASP.NET向客户端发送页响应,而不必再次经过页处理生命周期。页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用。有关页面缓存技术,请参见7.2节的内容。
u    应用程序缓存:应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中。使用应用程序缓存的优点是由ASP.NET管理缓存,它会在项过期、无效或内存不足时移除缓存中的项。还可以配置应用程序缓存,以便在移除项时通知应用程序。应用程序缓存的具体使用技术,请参见7.3节的内容。
7.1.2  缓存的主要功能
ASP.NET 3.5保留了以前版本的所有缓存功能,主要功能包括缓存配置文件、自定义缓存依赖项、SQL 缓存依赖项以及在缓存页中创建动态内容。

u    缓存配置文件:缓存配置文件能够在应用程序的web.config文件中创建缓存设置,然后在单个页上引用这些设置。可以将缓存设置同时应用于多页。例如,可以定义一个缓存配置文件,它将页的缓存持续时间设置为一天,然后可以配置各个页使用这个缓存配置文件,并且这些页的缓存持续时间为一天。如果将某个缓存配置文件更改为不使用缓存,将停止缓存这些页。
u    自定义缓存依赖项:在ASP.NET中,可以根据应用程序特定情况创建自己的自定义缓存依赖项。若要创建自定义缓存依赖项,需要从CacheDependency继承的类并在自定义类中实现自己的依赖项方法。例如,可以创建在Web服务中轮询数据的依赖项。数据发生变化时,使缓存数据无效。
u    SqlCacheDependency:ASP.NET引入了SqlCacheDependency类,它能够在缓存中配置一个项,以便在SQL Server数据库中的表或行上拥有依赖项。当表中或特定行中发生更改时,具有依赖项的缓存项便会失效并从缓存中移除。ASP.NET能够在SQL Server 7.0、SQL Server 2000和SQL Server 2005中设置表的依赖项。使用SQL Server 2005时,还可以设置特定记录的依赖项。
u    缓存后替换:ASP.NET支持缓存后替换,它能够将页中的某一部分配置为不可缓存。因此,尽管缓存了该页,但在再次请求该页时,将重新处理它的部分内容。
7.1.3  缓存配置
缓存的配置可以通过多种方式来实现,这几种方式分别为配置文件配置、单个页面配置和用户控件的配置。
配置文件配置主要是指可以在应用程序配置层次结构的任何配置文件中配置页面输出缓存设置,包括machine.config文件和特定于应用程序的web.config文件。
单个页面配置是指可以在单个页面中以声明方式或编程方式设置缓存选项,还可将在配置文件中创建的缓存配置文件应用于单个页面。用户控件配置是指可以在单个用户控件中以声明方式或编程方式设置缓存,对于在其他情况下不缓存的页面内容来说,这是一种简便的缓存方法。

u    配置文件配置:由于machine.config文件的配置方法与web.config文件配置类似,所以这里只介绍如何配置web.config文件使用缓存。在web.config文件中,有两个顶级配置节用于页输出缓存,OutputCacheSection和OutputCacheSettingsSection。OutputCacheSection节用于配置应用程序范围的设置,例如是启用还是禁用页输出缓存。可以向OutputCacheSection添加enableOutputCache="false"来对整个应用程序禁用页输出缓存。由于配置文件中的设置要优先于单个页面中的缓存设置,因此,示例设置将导致不使用输出缓存。OutputCacheSettingsSection用于配置可由单个页使用的配置文件和依赖项。例如,下面的代码创建了一个名为CacheProfile1的OutputCacheProfiles,它将实现缓存页60秒:

<outputCacheSettings>
  <outputCacheProfiles>
    <add name="CacheProfile1" duration="60" />
  </outputCacheProfiles>
</outputCacheSettings>

u    页面缓存配置设置:通过应用在配置文件中定义的缓存配置文件,可以配置单个页中的缓存。也可以在@OutputCache指令中配置单个缓存属性,或者通过设置页的类定义中的属性(attribute)进行配置。
u    用户控件缓存配置设置:通过设置用户控件文件中的@OutputCache指令,或设置控件类定义中的PartialCachingAttribute属性,可以对用户控件缓存进行配置。

本段摘自电子工业出版社 ASP.NET 3.5宝典
更多跟多样章分享http://www.yinghuochong.com/disk/349519.htm
                http://www.yinghuochong.com/disk/349520.htm
                http://www.yinghuochong.com/disk/349522.htm