當您在某一網(wǎng)頁中嵌入 Silverlight 插件時,指定該插件應下載的應用程序包。 該插件在該應用程序包中使用一個清單文件來標識要實例化的應用程序類。 此類稱為您的應用程序的"入口點",并且它必須從 Application 類派生。
如果您使用應用程序庫緩存,則清單還指示所需的哪些程序集是在應用程序包外部。 此插件將檢索所有此類文件。 對于已本地化的應用程序,該插件還將為所有所需的內(nèi)部和外部程序集檢索特定于區(qū)域性的附屬程序集。 有關(guān)更多信息,請參見 部署和本地化。
Application 類提供一個 Startup 事件,您可以處理該事件以便初始化您的應用程序及其用戶界面。 Application 類還提供其他常用的應用程序服務。 例如,您可以使用它來從應用程序包或從下載的 zip 文件提取資源文件。 有關(guān)更多信息,請參見 應用程序服務。 您也可以添加自定義應用程序服務。
下載應用程序啟動文件并實例化應用程序類的過程稱作 Silverlight 激活系統(tǒng)。 通過該激活系統(tǒng),您可以指定一個或多個包的最少初始下載以優(yōu)化緩存。 在激活后,您的應用程序可按需檢索附加的庫程序集和資源文件。
您通常在決定下載和啟動時間不可接受前在應用程序包內(nèi)部署所有應用程序文件。 此決定取決于應用程序的要求。 例如,您可以在應用程序包內(nèi)包括任意數(shù)目的文件,異步改進啟動后的響應。 在此情況下,可以通過提供初始屏幕在初始下載期間維護響應。 有關(guān)更多信息,請參見 Silverlight 初始屏幕。
您可以使用應用程序庫緩存來減少應用程序包的大小。 然而,這不會減少初始下載時間,它實際上會由于其他網(wǎng)絡請求而導致下載時間增加。 應用程序庫緩存的優(yōu)勢在于您可以更改應用程序代碼,而不要求回返者下載未更改的庫程序集。
在某些情況下,Silverlight 插件將無法加載非常大的應用程序包。 在您創(chuàng)建較大的應用程序時,應通過使用應用程序庫緩存或按需檢索某些文件,盡量降低應用程序包的大小。
在您決定將某些文件移出應用程序包時,有若干選項可供重新部署。
最容易重新部署的文件是使用相對 URI 引用的文件,例如圖像文件或視頻文件。 當 Silverlight 插件在代碼或 XAML 中遇到相對 URI 時,它會首先在應用程序包中進行查找。 如果該插件在應用程序包中找不到相應文件,則會在主機服務器上進行查找。 這意味著,您無需要求代碼更改就可以移動按相對 URI 引用的任何文件。 有關(guān)更多信息,請參見 資源文件。
許多文件類型不能按 URI 引用,并且在您將它們重新部署為按需文件時要求特殊處理。 例如,如果您重新部署某一庫程序集,則必須添加按需檢索它的代碼,并且將其加載到應用程序域中。 有關(guān)更多信息,請參見 如何按需加載程序集。 在這種情況下,您仍必須在應用程序項目中引用該程序集,但應將"復制本地"值設置為"False"。 這可防止內(nèi)部版本將該程序集添加到應用程序包或在啟動時要求該程序集(例如,ExternalPart 程序集)。
您還可能要將若干相關(guān)資源文件移出您的應用程序包,但按需將它們檢索為單個下載。 您可以通過將它們捆綁到在服務器上部署的某一 zip 文件中,執(zhí)行上述操作。 然后,必須添加按需檢索該 zip 文件并提取其內(nèi)容的代碼。 有關(guān)更多信息,請參見 按需下載內(nèi)容。