Caching Application Block 翻译(一)(介绍篇完)请大家多多包涵,翻译水平太烂

 Enterprise Library Caching Application Block 能够使开发者把本地缓存纳入其应用。
 它支持内存cache和后备存储cache,这种后备存储cashe可以是数据库存储系统或者是单独的存储系统。
 该应用程序块,不需要任何修改就能够提供所需的检索,添加和移除缓存数据功能。当然也配置缓存的过期和清除策略。
 当构建企业级分布式应用的时候,架构师和开发者都要面对很多挑战。缓存能够协助他们解决部分困难,比如以下:
 
 性能:缓存能够通过存储相关的尽可能接近所需的数据提高应用程序的性能。这种方式避免了重复的数据创建,处理和传输。
 
 可伸缩性:在缓存中存储数据信息能够节省资源和提高随着应用的增加而要求的不断增长的可伸缩性。
 可用性:通过在本地缓存存储数据,应用程序有可能在出现某些系统问题的情况下仍然能够使用,比如,网络等待,web服务问题,或者硬件问题。
 
 适用情况:
 Caching Application Block适用于以下情况:
 ×必须重复访问静态或很少改变的数据。
 ×在数据创建、检索,或传输的某些方面,数据访问代价昂贵。
 ×数据必须可用,甚至在数据源比如服务器挂掉的情况下仍然能够可用。
 
 你可以在如下的应用程序类型中使用Caching Application Block:
 
 ×Windows Forms
 ×控制台应用程序
 ×Windows 服务
 ×COM+ 服务器
 ×asp.net web 应用或web服务,如果ASP.NET 缓存不能满足您的需要,可以本程序块。
 
 您应该在单独的一个应用程序域中部署应用程序块。每一应用程序域能够有一个或多个缓存,也可以包括后备存。
 储。在不同的应用程序域中不能共享同一个缓存。
 
 Caching Application Block 已经为性能、线程安全和异常安全做了优化。您可以用自己的过期策略和后备存储扩展该程序块。
 
 应用示例:
 以下代码演示了怎样在缓存中添加和检索项。改代码创建了一个Product类型的实例,然后把该对象插入到缓存中,
 ,同时,把清除优先级设置为2,该配置在过期时不会被刷新,把失效日期设置为5分钟,5分钟即为从上次访问数据到当前的时间。
CacheManager productsCache = CacheFactory.GetCacheManager();
string id = "ProductOneId";
string name = "ProductXYName";
int price = 50;
Product product = new Product(id, name, price);
productsCache.Add(product.ProductID, product, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromMinutes(5)));
// Retrieve the item.
product = (Product) productsCache.GetData(id);

阅读者要求:
本想向导目的是写给软件架构师和软件开发者,为了更好地学习,您需要熟悉以下技术:
×Microsoft Visual Studio 2005 开发工具
×Microsoft .NET Framework 2.0

 Caching Application Block的显著特点:
 
Enterprise Library Caching Application Block 包括以下特征:

×您可以使用被称为企业库配置控制台的图形工具来管理配置设置。
×您可以配置一个持久化存储位置,使用独立的存储器或者Enterprise Library Data Access      Application Block,其中,该程序块的状态应是与内存中的缓存同步的。
×您可以通过创建定制的过期策略和存储位置来扩展该应用程序块。
×本应用程序块在执行上是确保线程安全的。

系统需求:

×Microsoft Windows XP Professional, Windows Server 2003, or Windows Vista operating system
×Microsoft .NET Framework 2.0
 ×Microsoft Visual Studio 2005 development system (any of the following editions):
 ×Microsoft Visual Studio 2005 Standard Edition
 ×Microsoft Visual Studio 2005 Team Edition for Software Developers
×Microsoft Visual Studio 2005 Professional Edition
×Microsoft Visual Studio 2005 Team Edition for Software Testers

Microsoft Visual Studio 2005 Team Edition for Software Architects

Microsoft Visual Studio 2005 Team Suite

Caching Application Block 依赖;
Caching Application Block 依赖于包括在本企业库中的其他代码:
Core library functionality.Core library 功能:
提供方法实现和配置服务;它是一个所有的企业库应用程序块的共享依赖。核心库的功能包含在程序集Microsoft.Practices.EnterpriseLibrary.Common.dll中。
ObjectBuilder 子系统,执行重复的必要的创建和释放对象实例的工作,同时还具有高度的灵活性。
企业库使用该程序块完成把配置注入到程序块类,并完成实现类和应用程序的连接。ObjectBuilder 包含在程序集Microsoft.Practices.ObjectBuilder.dll。
Data Access Application Block,如果你需要把数据库作为一个后备存储器,就要用到该程序块。
The Cryptography Application Block,如果你需要加密在cache中的数据,就要用到该程序块。

我们推荐使用Enterprise Library Configuration Console来配置 Caching Application 。

Scenarios 与目标:
缓存应用程序块,为完成开发者缓存数据时遇到的共同问题而设计。根据Scenarios ,这些任务已经放到了程序块中。
我们为每个Scenarios 准备了一个真实的应用示例,比如,添加一项到缓存中,讨论此种情况对缓存的需求,并演示完成此项任务的代码。

根据Scenarios 安排这些任务的目的是,给定代码的应用场景。 这些Scenarios 为代码提供了一个框架,并在对于许多需要数据缓存的开发者来说是非常熟悉的场景中使用,而不是在缺乏这些代码的最佳应用场景的情况下,描述一组孤立的方法。

如下Scenarios 被描述:
×选择和配置一个缓存容器。
×添加一项到缓存并设置它的过期日期。
×从缓存中删除一项。
×从缓存中检索一项。
×刷新缓存。

决定在什么情况下使用Caching Application Block:
×缓存应用程序块被设计成能工作在最常见的需要数据缓存的情况下:在这种情况下,应用程序和缓存必须存在于同一系统。即,缓存是本地缓存,应该只能由那个应用程序来使用。当不考虑这些限制时进行应用,该应用程序块的使用对于以下场景是非常理想的:
×在不同的应用环境中需要一致的缓存表单。比如,通过应用缓存程序块,开发者能够写相似的代码来实现缓存,用来应用于驻留在IIS,企业服务以及智能客户端环境中的应用程序。同时,这些环境应有同样的缓存配置。
×要求可配置的并且有持久化的后备存储:缓存程序块支持独立的存储(可能指内存)和数据库后备存储。开发者能够创建另外的后备存储提供程序然后用配置设置把它添加到缓存程序块。该应用程序块也能够在它持久化到后备存储前对称加密存储信息。
×在更改缓存配置时不粗要更改应用程序源代码:首先,开发者写出使用一个或多个名字命名的缓存。系统操作员和开发者能够使用Enterprise Library Configuration Console对这些已经命名的缓存进行不同的配置。
×缓存需要以下的任何一种过期设置:绝对时间,相对时间,扩展的时间格式(比如,每天的午夜),文件依赖,或从不过期。关于更多的使用过期设置,请看:Design of the Expiration Process.
×开发者项修改缓存应用程序块的源代码。更多的信息请看:Modifying the Caching Application Block.

另外,缓存程序块提供一个和其他企业程序块一致的开发模型。本应用程序块能够和有后备存储功能的数据访问程序块进行无缝的整合。同样,安全程序块包含由缓存程序块提供的缓存功能。 开发者和系统操作员能够使用Enterprise Library Configuration Console来配置该应用程序块。

缓存程序块的替代性方案

当多个应用使用缓存或缓存和应用不在同一系统时,使用其他的缓存解决方案是一个更好的选择。
例如,你不能跨web同步缓存时。

ASP.NET 缓存
.NET Framework 把ASP.NET 缓存包含在 System.Web 命名空间。 asp.net 应用程序开发者能够通过System.Web.HTTPContext.Cache 对象访问缓存。asp.net缓存是为asp.net 应用程序开发和优化。虽然如此,这个缓存模块也能够通过访问System.Web.HTTPRuntime.Cache 对象,在其他类型的应用程序中使用缓存。asp.net 缓存需要引用System.Web程序集。开发人员应该在使用前评估该程序集在目标平台和环境中是否被支持。

安全
虽然你能够加密缓存在后备存储中的数据,但是,缓存程序块不支持对缓存在内存中的数据进行加密。
如果,恶意用户能够找到途径危及系统并且访问你内存中的程序数据,破坏者就可能访问缓存在内存中的数据。如果这是一个你应用程序中的一个重要线程,请不要在缓存中存储信用卡号或密码之类的敏感信息。

 

原文地址:https://www.cnblogs.com/cpsing/p/1245206.html