快速业务通道

Enterprise Library 2.0 Hands On Lab 翻译(9):缓存应用程序块(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

练习1:使用缓存应用程序块提高性能

该练习将示范如何使用企业库中的缓存应用程序块,并用它提高显示数据的速度。

第一步

打开EmployeeBrowser.sln 项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\exercises\ex01\begin,并编译。

第二步 在QuickStarts数据库中填充数据

运行批处理文件SetCachingHOL.bat,默认的安装位置为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Caching\setup。这样会在QuickStarts数据库中创建Employees数据表并插入一些测试数据,以及创建相应的存储过程。默认的数据库服务器为(local)\SQLEXPRESS,如果需要修改请用记事本打开SetCachingHOL.bat,自行修改。

第三步 回顾应用程序

1.该应用程序主要用来从数据库读取并浏览雇员的详细信息,作为应用程序的一部分,还可以浏览员工的照片信息。

2.在项目EmployeeBrowser中选择MainForm.cs文件,选择View | Code菜单命令并定位到方法MainForm_Load中,窗体类通过EmployeeService获取数据来显示,而它使用EmployeeDataProvider来返回数据,如下图所示:

Enterprise Library 2.0 Hands On Lab 翻译(9):缓存应用程序块(一)

注意现在EmployeeService仅仅是EmployeeDataProvider的一个委托,我们将会在这里使用缓存应用程序块。

3.在解决方案管理器中选择EmployeeDataProvider.cs文件,选择View | Code菜单命令并定位到GetEmployeePhotoData方法。注意这里对数据库的访问做了一秒钟的延迟。

4.选择Debug | Start Without Debugging菜单命令运行应用程序。注意到这里在浏览雇员的照片时会有一定的延迟。

第四步 在EmployeeService类中实现缓存

1.选择项目EmployeeBrowser,并选择Project | Add Reference…菜单命令,在弹出的对话框中选择Browse项,添加如下程序集。

Microsoft.Practices.EnterpriseLibrary.Caching.dll 

Enterprise Library 2.0 Hands On Lab 翻译(9):缓存应用程序块(一)

2.在解决方案管理器中选择EmployeeService.cs文件,并选择View | Code菜单命令。

3.在代码中添加如下命名空间。

using Microsoft.Practices.EnterpriseLibrary.Caching;

4.添加如下代码到方法GetEmployeePhoto中。

public static Bitmap GetEmployeePhoto(Guid employeeId)
{
  byte[] photoData = null;
  // TODO: Add Caching of Photo
  // Attempt to retrieve from cache
  CacheManager cache = CacheFactory.GetCacheManager();
  photoData = (byte[])cache[employeeId.ToString()];
  // Retrieve from dataProvider if not in Cache
  if (photoData == null)
  {
    EmployeeDataProvider dataProvider = new EmployeeDataProvider();
    photoData = dataProvider.GetEmployeePhotoData(employeeId);
    cache.Add(employeeId.ToString(), photoData);
  }
  // No data found.
  if (photoData == null)
    return null;
  // Convert bytes to Bitmap
  using (MemoryStream ms = new MemoryStream(photoData))
  {
    return new Bitmap(ms);
  }
}

该方法使用工厂模式,创建了一个CacheManager的实例,它可以常驻内存或者存储于物理存储上,这取决于你的配置。Items可以通过索引被移除,也可以通过Add方法来增加。

5.添加如下代码到ClearCache方法中,以便允许窗体来获取新的数据。

public static void ClearCache()
{
  // TODO: Clear Cache
  CacheManager cache = CacheFactory.GetCacheManager();
  cache.Flush();
}

该方法将从缓存中移除所有的条目。

第五步 使用企业库配置工具

1.使用Enterprise Library配置工具配置应用程序,可以通过开始菜单打开该配置工具,选择所有程序| Microsoft patterns and pract

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号