扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:msdn 来源:msdn 2007年9月2日
关键字:
<%@ outputcache duration="3600" varybyparam="ProdID" %> |
以上代码根据变量 ProdID (产品 id)在内存中缓存页面一小时。
如果在应用程序的其他地方更新了下层数据,缓存数据将出现问题。例如,考虑将一个产品目录页面通过产品 ID 进行缓存。如果从一个管理站点更新产品信息(例如,可用数量或价格),过期数据仍保留在缓存中,并显示给客户。在 ASP.NET 1.x 中,必须等待缓存失效,或使用 Response.RemoveOutputCacheItem 强制缓存失效。
ASP.NET 2.0 通过实现表格级 SQL 通知来支持数据库缓存依赖关系。更改数据时,一个表格级依赖关系通知页面。下面的代码将产品页面缓存了一小时,但是向数据库表添加了一个依赖关系。
<%@ outputcache duration="3600" varybyparam="ProdID" sqldependency="MyDatabase:Products" %> |
向 Products 表格添加新的 SQLDependency 属性后,不论表格发生任何更改,缓存过的页面都将失效。SQLDependency 属性必须引用在 web.config 文件中配置的 Microsoft SQL Server DataSource。DataSource 标识了使依赖关系通知有效的数据库连接和参数。
自定义 SQL 依赖关系
虽然默认情况下 SQLDependency 类只支持 Microsoft SQL Server,但是您能够通过 machine.config 和 web.config 文件替代和重新配置类。这个功能允许您创建自定义的 SQLDependency 类,为任何 DataSource(包括 Oracle、Sybase 或其他任何数据库)提供相似的功能。
数据源缓存
在 ASP.NET 2.0 中,缓存数据的另一个方法是使用直接置入数据源的缓存机制。例如,SQLDataSource 和 ObjectDataSource 类都支持通过 EnableCaching 属性直接缓存。只需将该属性设置为 true,数据源将自动缓存从数据存储提取的数据。缓存将根据 CacheDuration 属性设定的时间或通过类似于页面级指令的 SQLCacheDependency 失效。由于在数据源控件中置入了这些功能,无需编写任何代码,您就能快速、轻松地实现缓存。
改进的 DataSet 远程处理支持
对 ASP.NET 1.1 最多的抱怨是:由于通常要将 DataSet 序列化为 XML,因此通过 .NET 远程处理发送 DataSet 比发送其他序列化二进制表示形式慢。ASP.NET 2.0 将 DataSet 作为二进制序列化表示形式进行传输,以帮助减少 DataSet 的传输大小和传递信息所需的传输时间。
安全性
ASP.NET 2.0 提供的一项服务能够加密配置文件的任何部分。通过加密,您能够更安全地存储应用程序内的信息。例如,可以加密 Web.config 文件的 ConnectionString 部分来保护所有的敏感信息。配置加密允许您安全地存储像连接字符串这样的信息。
加密配置信息时,您可以使用政府标准加密算法,例如三重 DES。因为加密数据存储在配置文件中,所以应用程序不依赖于注册表。
小结
ASP.NET 2.0 致力于帮助您灵活地控制数据,通过在新增的数据控件中封装功能,减少访问数据和显示数据所需的代码数量。新的数据访问模型和控件减少的数据访问代码多达 70%。现在,传统的 ASP 或 ASP.NET 1.1 应用程序中需要手动设计的许多功能都已内置到新的数据控件中了。数据访问的新体系结构也是可扩展的,是为访问多种不同的数据源数据而设计的,这些数据源包括数据库、XML 文件、平面文件、数据流等等。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者