练习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来返回数据,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/76b8ee5d2c764429023e56e790b781ff.png)
3
.在解决方案管理器中选择EmployeeDataProvider.cs文件,选择View | Code菜单命令并定位到GetEmployeePhotoData方法。注意这里对数据库的访问做了一秒钟的延迟。
4
.选择Debug | Start Without Debugging菜单命令运行应用程序。注意到这里在浏览雇员的照片时会有一定的延迟。
第四步 在EmployeeService类中实现缓存
1
.选择项目EmployeeBrowser,并选择Project | Add Reference…菜单命令,在弹出的对话框中选择Browse项,添加如下程序集。
Microsoft.Practices.EnterpriseLibrary.Caching.dll
![](https://i-blog.csdnimg.cn/blog_migrate/e85b8249e3974776996ba9bb61e2a0ce.png)
3
.在代码中添加如下命名空间。
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
4
.添加如下代码到方法GetEmployeePhoto中。
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedSubBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedSubBlockEnd.gif](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedSubBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/3112b7b6526db5bc83e275260ae60525.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedSubBlockEnd.gif](https://i-blog.csdnimg.cn/blog_migrate/eec4c0236afc26744c9c4e910bc34958.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedBlockEnd.gif](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
该方法使用工厂模式,创建了一个
CacheManager的实例,它可以常驻内存或者存储于物理存储上,这取决于你的配置。
Items可以通过索引被移除,也可以通过
Add方法来增加。
5
.添加如下代码到ClearCache方法中,以便允许窗体来获取新的数据。
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![None.gif](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![InBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/587e34b10dcf5efbc0859b53470a2db3.gif)
![ExpandedBlockEnd.gif](https://i-blog.csdnimg.cn/blog_migrate/4fd96b3cf02f4c7b5c8964ac8167f7af.gif)
该方法将从缓存中移除所有的条目。
第五步 使用企业库配置工具
1
.使用Enterprise Library配置工具配置应用程序,可以通过开始菜单打开该配置工具,选择所有程序| Microsoft patterns and practices | Enterprise Library | Enterprise Library Configuration,并打开App.config文件。或者直接在Visual Studio中使用该工具打开配置文件。
2
.在解决方案管理器中选中App.config文件,在View菜单或者在右键菜单中选择Open With…,将打开OpenWith对话框,单击Add按钮。
![](https://i-blog.csdnimg.cn/blog_migrate/aaa4d0ba0b3eb03e25b81ea25139ee55.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aeef3a6b9c5056affef1e50b5691d7d6.png)
4
.在Open With对话框中,选中Enterprise Library Configuration并单击OK按钮。
![](https://i-blog.csdnimg.cn/blog_migrate/b4d968243cede94d4cd7b7574f569886.png)
第六步 配置应用程序
1
.右击应用程序并选择New | Caching Application Block。
![](https://i-blog.csdnimg.cn/blog_migrate/c16b207e351318f2b8f37799cc96e5e4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/71e5184a3eba898f0aa2c571dbc136b3.png)
4
.在Visual Studio中打开App.config配置文件,现在App.config包含了一些刚才所做的关于缓存的配置,注意到backing store是Null Storage,缓存将存储在内存中。
第七步 运行应用程序
1
.选择Debug | Start Without Debugging菜单命令运行应用程序,注意观察浏览雇员照片数据性能上的提高。
2
.关闭应用程序和Visual Studio。
本文转自lihuijun51CTO博客,原文链接:
http://blog.51cto.com/terrylee/67640
,如需转载请自行联系原作者