3

ASP.NET 缓存类从 ASP.NET 3.5 到 4.0 之间有什么主要区别吗?

4

2 回答 2

4

我不认为有任何重大差异。不过有一个新的 MemoryCache 类。

ASP.NET 4 为输出缓存增加了可扩展性,使您能够配置一个或多个自定义输出缓存提供程序。输出缓存提供者可以使用任何存储机制来保存 HTML 内容。这些存储选项可以包括本地或远程磁盘、云存储和分布式缓存引擎。

...

自首次发布以来,ASP.NET 就包含了一个强大的内存中对象缓存 (Cache)。缓存实现非常流行,以至于它已被用于非 Web 应用程序中。但是,Windows 窗体或 WPF 应用程序包含对 System.Web.dll 的引用只是为了能够使用 ASP.NET 对象缓存是很尴尬的。为了使缓存可用于所有应用程序,.NET Framework 4 引入了一个新程序集、一个新命名空间、一些基本类型和一个具体的缓存实现。新的 System.Runtime.Caching.dll 程序集在 System.Runtime.Caching 命名空间中包含一个新的缓存 API。命名空间包含两组核心类: 抽象类型,为构建任何类型的自定义缓存实现提供基础。一个具体的内存对象缓存实现(MemoryCache 类)。

新的 MemoryCache 类在 ASP.NET 缓存上紧密建模,它与 ASP.NET 共享大部分内部缓存引擎逻辑。尽管 System.Runtime.Caching 命名空间中的公共缓存 API 已更新以支持自定义缓存的开发,但如果您使用过 ASP.NET Cache 对象,您会在新 API 中找到熟悉的概念。

http://msdn.microsoft.com/en-us/library/s57a598e.aspx

于 2010-06-09T05:30:22.740 回答
2

作为 Raj 回答的附录:

MemoryCache 类类似于 ASP.NET Cache 类。MemoryCache 类具有许多用于访问缓存的属性和方法,如果您使用过 ASP.NET Cache 类,您会很熟悉这些属性和方法。Cache 和 MemoryCache 类之间的主要区别在于 MemoryCache 类已被更改,以使其可供非 ASP.NET 应用程序的 .NET Framework 应用程序使用。例如,MemoryCache 类不依赖于 System.Web 程序集。另一个区别是您可以创建 MemoryCache 类的多个实例,以便在同一个应用程序和同一个 AppDomain 实例中使用。

http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.aspx

于 2010-06-09T14:11:39.907 回答