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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章