Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
尚未分类 LINQ教程Enterprise技术 性能优化/调试 水晶报表与打印 安全与加密 图形图像 文件处理 基础教程 Web Services 内置对象 控件示例 正则表达式\采集 ADO.NET 缓存\泛型\线程 XML技术 Url重写\静态页 vs2008综合教程
当前位置: 主页 > ASP.NET教程 > Enterprise技术 >

Enterprise Library 4 缓存快速入门

时间:2010-08-15 13:43来源:未知 作者:admin 点击:

快速入门使用了一个顶层的处理程序来捕获任何场景中的任何异常。处理程序显示了一个带有异常信息的对话框。

快速入门在构建和运行应用程序之前不需要执行任何安装步骤。[注意:默认的快速入门配置不使用持久后端存储。]

快速入门提供两个版本。第一个版本使用工厂创建Enterprise Library 对象,例如使用CacheFactory.GetCacheManager 方法创建CacheManager 实例, 以及使用new操作符创建ProductData 实例。

第二个版本演示了集成Unity 应用程序块。创建和填充UnityContainer 实例是使用配置文件中<unity>配置节的数据。这会加载Enterprise Library 核心和缓存应用程序块扩展。在这个快速入门也使用UnityContainer的Resolve 方法创建Main Form实例,从而导致Unity创建和注入Main Form所需要的CacheManager 和ProductData 实例,他们是通过构造函数注入的。

构建并运行快速入门
快速入门以源代码的形式发布,这意味着在运行之前必须编译它,可以使用 Visual Studio 来构建快速入门。
构建缓存快速入门

确认已安装 Enterprise Library 源代码
从 Windows 资源管理器中打开 Enterprise Library 源码文件夹,或者用开始菜单快捷方式打开:在任务栏中,单击 开始 ,指向 程序 ,指向 Microsoft patterns and practices ,指向 Enterprise Library 4.0 – May 2008 ,然后选择 Enterprise Library 4.0 Source Folder 。
运行集成Unity应用程序块的实例,打开 QuickStarts 文件夹,然后是 Cache ,然后是 CS-UnityIntegration (用于 C#)或者 VB-UnityIntegration (用于 Visual Basic .NET)。
双击 CachingQuickStart.sln 图标。
Visual Studio 打开、显示解决方案文件。在菜单中,单击 生成 。
单击 重新生成解决方案 。默认情况下,这是一个 debug 构建。
按下 F5 运行快速入门。

快速入门配置
快速入门配置信息放置在快速入门项目的文件夹中,它具有下列属性:
用于缓存操作节的缓存管理器被命名为“Default Cache Manager”。用于主动和被动加载缓存的节的缓存管理器被命名为“Loading Scenario Cache Manager”。
数据仅写在内存中(而不是后端存储)。
每 60 秒发生一次到期周期。
在缓存中有 1000 个条目时发生清理。
从缓存中清理移除 10 个条目。

快速入门中的漫游带有定义好的配置,它被包括在 App.config 文件中。这个文件放置在快速入门项目文件的文件夹中。
要修改或查看这些设置,使用 Enterprise Library 配置控制台打开包含快速入门项目文件目录中的 App.config 文件。App.config 包含了配置数据。
在每次构建代码时,Visual Studio 复制 App.config 文件到项目的输出目录中(创建的快速入门可执行文件的目录),并改名为 CachingQuickStart.exe.config 。
这意味着如果要使用配置控制台修改任何配置设置,如到期周期,并且计划重建解决方案,就必须打开快速入门源目录中的 App.config 文件来修改配置。可以用配置控制台打开 CachingQuickStart.exe.config 文件。然而,这些改变将在下次成功构建中被覆盖。
这意味着当使用配置控制台打开 App.config 文件并修改配置设置时,必须复制文件到输出目录。可以手工复制,也可以重建项目来完成此目的。记住,简单的修改配置设置没有必要重建代码。运行在成功构建之上的命令是为了方便构建。

漫游:添加条目到缓存中

漫游示范了如何添加条目到缓存中。

重建示例

1. 配置缓存。必要的步骤,请参见输入配置信息。
2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。

private ICacheManager primitivesCache;

3.在 QuickStart_Load 方法中,添加下列代码以创建 CacheManager 。对 GetCacheManager 的调用没有包含CacheManager 的名称,所以工厂创建了声明在配置文件中的默认 CacheManager 对象。

this.primitivesCache = CacheFactory.GetCacheManager();

4. 创建要添加到缓存中的条目。下列代码创建了一个 Product 类型的条目。

string id="ProductOneId";
string name = "ProductOneName";
int price = 50;

Product product = new Product(id, name, price);

5. 添加条目到缓存中。下列代码使用了 Add 方法的一个重载,重载包含清理优先级(在此为2),条目在到期时不刷新的指令、从条目的最后访问时间开始的5分钟的到期时间。

primitivesCache.Add(product.ProductID, product, CacheItemPriority.Normal, null,
                     new SlidingTime(TimeSpan.FromMinutes(5)));

漫游:从缓存中移除条目

此漫游示范了如何从缓存中移除条目。
重建此示例

1. 配置缓存。必要的步骤,请参见缓存快速入门中的“快速入门配置”。

2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。

private ICacheManager primitivesCache;

3. 在响应用户请求从缓存中移除条目的方法中,添加下列代码。

// Prompt the user for the key of the item to be removed.
if (this.selectItemForm.ShowDialog() == DialogResult.OK)
{
// Request that the item be removed from the cache.
this.primitivesCache.Remove(selectItemForm.ItemKey);
}漫游:从缓存中获取条目此漫游示范了如何从缓存中获取条目。
重建示例

1. 配置缓存。必要步骤,请参见缓存快速入门中的“快速入门配置”。

2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。

private ICacheManager primitivesCache;
3. 在响应用户请求从缓存中读取条目的方法中,添加下列代码。

// Prompt the user for the key of the item to be read.
if (this.selectItemForm.ShowDialog() == DialogResult.OK)
{
// Read the item from the cache. If the item is not found in the cache, the
// return value will be null.
Product product = (Product) this.primitivesCache.GetData(selectItemForm.ItemKey);
}
漫游:清除缓存

此漫游示范了如何清除缓存,清空缓存中的所有数据。
重建此示例

1. 配置缓存。必要步骤,请参见缓存快速入门中的“快速入门配置”。

2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。

private ICacheManager primitivesCache;

3. 在响应用户请求清空缓存的方法中,添加下列代码。

this.primitivesCache.Flush();
漫游:加载缓存 快速入门的此节说明了如何主动加载缓存和如何被动加载缓存。
解决方案概述
图 1 说明了快速入门如何从缓存中获取数据。


图 1 说明了如何几点:
简单的产品数据被包含在 XML 文件 CachingQuickStartData.xml 中。
DataProvider 对象从 XML 文件中读取产品数据。
ProductData 对象使用 DataProvider 类获得添加到缓存中的产品数据。
QuickStartForm 对象通过调用 ProductData 对象获取产品信息。在查询产品信息时,ProductData 首先在缓存中查找,如果找到,返回信息。对于没有在缓存中的条目,ProductData 对象使用 DataProvider 来从文件中获取数据,然后添加到缓存中。
主动加载缓存
可以主动缓存数据以获取应用程序和进程所需要的所有状态,通常在应用程序或者进程启动时,可以在应用程序或者进程的整个生命周期内缓存数据。 
主动加载缓存
1. 配置缓存,定义名为 Loading Scenario Cache Manager 的 CacheManager 的对象。对于必要的步骤,请参见缓存快速入门中“快速入门的配置”。
2. 在 ProductData 类中定义用于 CacheManager 对象的成员变量。
private ICacheManager cache;

3. 通过添加下列代码来创建 CacheManager 对象。工厂使用在配置文件中的名称来创建 CacheManager 对象。
cache = CacheFactory.GetCacheManager("Loading Scenario Cache Manager");
4. 从 XML 文件中加载完整的数据集到缓存中。
List<Product> list = this.dataProvider.GetProductList();
for (int i = 0; i < list.Count; i++)
{
  Product product = listi;
  cache.Add(product.ProductID, product);
}

被动加载缓存
可以被动的缓存数据以获取应用程序请求的数据,并缓存它以备以后的请求使用。
被动加载缓存
1. 配置缓存,定义名为 Loading Scenario Cache Manager 的 CacheManager 的对象。对于必要的步骤,请参见缓存快速入门中“快速入门的配置”。
2. 在 ProductData 类中定义用于 CacheManager 对象的成员变量。
private ICacheManager cache;
3. 通过添加下列代码来创建 CacheManager 对象。工厂使用在配置文件中的名称来创建 CacheManager 对象。
cache = CacheFactory.GetCacheManager("Loading Scenario Cache Manager");
4. 添加下列在请求以获取 Product 时将执行的代码。
Product product = (Product)cache.GetData(productID);
// Does our cache already have the requested object?
if (product == null)
{
// Requested object is not cached; therefore, retrieve it from
// the data provider and cache it for more requests.
product = this.dataProvider.GetProductByID(productID);
if (product != null)
{
cache.Add(productID, product);
}
}
return product;
缓存与主数据源的比较
要查看在缓存中的数据与主数据源中的数据有什么不同,单击 Edit Master Data 按钮,然后修改 XML 文件中的某些值。如果在主数据修改之前条目已经在缓存中,并在修改后从缓存中获取它,从缓存中获取的数据将与主数据源中的数据不匹配。
(责任编辑:admin)
Tags:缓存 Enterprise Library
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价
  • Enterprise Library 4.1 Configuration的使用

    Enterprise Library Configuration是Enterprise Library附带的编辑App.Config的工具,安装Enterpri...

  • Enterprise Library 4 缓存应用程序块的设计

    缓存应用程序为以下目的而设计: 提供一个大小可管理的 API 集合。 允许开发人员添加标准的缓存操作到他们的应用程序中,而不用学习应用程序块的内部工作。 用 E...

  • Enterprise Library 4 缓存快速入门

    快速入门使用了一个顶层的处理程序来捕获任何场景中的任何异常。处理程序显示了一个带有异常信息的对话框。 快速入门在构建和运行应用程序之前不需要执行任何安装步骤。[...

  • 替换Enterprise Library 4.0 缓存应用程序块的CacheMana

    缓存是用来提高应用程序性能的常见技术,其实现方式是将常用数据从慢数据源复制到更快的数据源。对于数据驱动的应用程序来说,该技术通常需要将从数据库或 Web 服务检...

  • 使用Enterprise Library4.1操作Oracle

    方法一 Oracle 包创建一个公用的游标,方便多次引用 CREATE OR REPLACE PACKAGE PKG_TEST IS TYPE cur_OUT ...

  • Enterprise Library简介

    Enterprise Library 是一个为了由创建复杂企业级应用的开发人员使用的应用程序块的集合。这些应用通常部署广泛且与其他应用和系统相互依赖。另外,他们...