SilverLight Cache First Exploration

一、概述

  用户打开同一SilverLight站点时,由于每次都要重新加载SilverLight应用程序包(.xap文件),因此会大大的降低用户体验。因此微软在SilverLight 3.0版本中提供了应用程序集缓存(Application Library Caching),可以解决这一缺陷。

  应用程序集缓包括两个部分:

    1、SilverLight本身的程序集缓存;

    2、用户自定义程序集缓存。

 下面分别介绍一下两种程序集缓存的实现方法:

 

二、SilverLight本身的程序集缓存

  SilverLight在它的SDK中提供了很多程序集,这些程序集可以通过配置,当且仅当需要使用或者有更高版本时,才重新加载这些程序集,下面是配置步骤:

  1、在应用“程序资源管理器”中选择需要配置的SilverLight项目;

  2、点击右键,选择“属性”

  3、在属性配置页中选择“SilverLight”卡,在SilverLight页面中选择“通过使用应用程序库缓存减小XAP大小”。

  以上步骤就完成了相关配置,现在重新编译整个解决方案,编译成功后,可以在Web项目的ClientBin文件夹中,多了些项目中引用的SilverLight程序集的zip文件,另外xap文件的大小也减小了。

 

三、用户自定义程序集缓存

  自定义程序集缓存所使用的程序集必须为强命名程序集(添加方法:略),下面是配置步骤:

  1、在SilverLight项目的Bin/Debug目录下,找到要缓存的程序集;

  2、在SilverLight项目的Bin/Debug添加对应程序集的映射文件,文件名为对应程序集的文件名,扩展为.extmap.xml(如:程序集名称为Microsoft.Windows.Controls.dll,对应映射为:Microsoft.Windows.Controls.extmap.xml);

  3、用记事本打开映射文件,输入如下内容:

  <?xml version="1.0"?>
  <manifest xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <assembly>
    <name>Microsoft.Windows.Controls</name>
    <version>2.0.21027.1502</version>
    <publickeytoken>31bf3856ad364e35</publickeytoken>
    <relpath>Microsoft.Windows.Controls.dll</relpath>
    <extension downloadUri="Microsoft.Windows.Controls.zip" />
   </assembly>
  </manifest>

  说明:

  name:对应程序集名称;

  version:对应程序集版本号;

  publickeytoken:公钥标记(Vistual Studio 命令行工具中通过 sn -T <assemblyName>获取);

  relpath:程序集文件全名;

  downloadUri:为下载该程序集制定的压缩包,必须为zip压缩文件;可以指定绝对路径,本例为相对路径;

  注:如果多个程序集制定的downloadUri相同,则编译系统会将这些程序集压缩到同一个zip文件中

 

  以上步骤就完成了相关配置,现在重新编译整个解决方案,编译成功后,可以在Web项目的ClientBin文件夹中,会发现多出了对应的压缩包(本例为:Microsoft.Windows.Controls.zip)。

  另外:可以打开SilverLight的xap文件中的AppManifest.xaml文件,会发现对应的Deployment.ExternalParts部分增加了
  <Deployment.ExternalParts>
    <ExtensionPart Source="Microsoft.Windows.Controls.zip" />

  </Deployment.ExternalParts>

六、总结

  用户自定义程序集缓存使用时,也必须 选择“通过使用应用程序库缓存减小XAP大小”。

 

  以上内容参考:http://msdn.microsoft.com/en-us/library/dd833069%28VS.95%29.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值