petshop4.0详解四:PetShop之ASP.NET缓存
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-04-12
Where tableName = @tableName END GO 4.2.2 利用SqlCacheDependencyAdmin类 我们也可以利用编程的方式来来管理数据库对SqlCacheDependency特性的使用。该类包含了五个重要的方法: DisableNotifications 为特定数据库禁用 SqlCacheDependency对象更改通知 DisableTableForNotifications 为数据库中的特定表禁用SqlCacheDependency对象更改通知 EnableNotifications 为特定数据库启用SqlCacheDependency对象更改通知 EnableTableForNotifications 为数据库中的特定表启用SqlCacheDependency对象更改通知 GetTablesEnabledForNotifications 返回启用了SqlCacheDependency对象更改通知的所有表的列表 表4-1 SqlCacheDependencyAdmin类的主要方法 假设我们定义了如下的数据库连接字符串: const string connectionStr = "Server=localhost;Database=MSPetShop4"; 那么为数据库MSPetShop4启用SqlCacheDependency对象更改通知的实现为: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlCacheDependencyAdmin.EnableNotifications(connectionStr); } } 为数据表Product启用SqlCacheDependency对象更改通知的实现则为: SqlCacheDependencyAdmin.EnableTableForNotifications(connectionStr, "Product"); 如果要调用表4-1中所示的相关方法,需要注意的是访问SQL Server数据库的帐户必须具有创建表和存储过程的权限。如果要调用EnableTableForNotifications方法,还需要具有在该表上创建SQL Server触发器的权限。 虽然说编程方式赋予了程序员更大的灵活性,但aspnet_regsql工具却提供了更简单的方法实现对SqlCacheDependency的配置与管理。PetShop 4.0采用的正是aspnet_regsql工具的办法,它编写了一个文件名为InstallDatabases.cmd的批处理文件,其中包含了对aspnet_regsql工具的执行,并通过安装程序去调用该文件,实现对SQL Server的配置。 4.3 在PetShop 4.0中ASP.NET缓存的实现 PetShop作为一个B2C的宠物网上商店,需要充分考虑访客的用户体验,如果因为数据量大而导致Web服务器的响应不及时,页面和查询数据迟迟得不到结果,会因此而破坏客户访问网站的心情,在耗尽耐心的等待后,可能会失去这一部分客户。无疑,这是非常糟糕的结果。因而在对其进行体系架构设计时,整个系统的性能就显得殊为重要。然而,我们不能因噎废食,因为专注于性能而忽略数据的正确性。在PetShop 3.0版本以及之前的版本,因为ASP.NET缓存的局限性,这一问题并没有得到很好的解决。PetShop 4.0则引入了SqlCacheDependency特性,使得系统对缓存的处理较之以前大为改观。 4.3.1 CacheDependency接口 PetShop 4.0引入了SqlCacheDependency特性,对Category、Product和Item数据表对应的缓存实施了SQL Cache Invalidation技术。当对应的数据表数据发生更改后,该技术能够将相关项从缓存中移除。实现这一技术的核心是SqlCacheDependency类,它继承了CacheDependency类。然而为了保证整个架构的可扩展性,我们也允许设计者建立自定义的CacheDependency类,用以扩展缓存依赖。这就有必要为CacheDependency建立抽象接口,并在web.config文件中进行配置。 在PetShop 4.0的命名空间PetShop.ICacheDependency中,定义了名为IPetShopCacheDependency接口,它仅包含了一个接口方法: public interface IP |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于petshop4.0详解四:PetShop之ASP.NET缓存的所有评论