Share via


Windows Presentation Foundation XAML 瀏覽器應用程式概觀

更新: 2008 年 7 月

XAML 瀏覽器應用程式 (XBAP) 結合了 Web 應用程式和豐富型用戶端 (Rich Client) 應用程式兩者的功能。如同 Web 應用程式,XBAP 可以發佈到 Web 伺服器並從 Internet Explorer 啟動;而和豐富型用戶端應用程式一樣,XBAP 也可以利用 WPF 的功能。開發 XBAP 也和豐富型用戶端開發非常類似。本主題提供 XBAP 開發的高階簡介,並強調 XBAP 開發與標準豐富型用戶端開發的不同之處。

這個主題包含下列章節。

  • 實作 XAML 瀏覽器應用程式 (XBAP)
  • 部署 XAML 瀏覽器應用程式
  • XBAP 安全性考量
  • XBAP 開始時間效能考量

實作 XAML 瀏覽器應用程式 (XBAP)

建立新 XBAP 專案最簡單的方式是使用 Microsoft Visual Studio:

  1. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。

  2. 在 [新增專案] 對話方塊的 [專案類型] 窗格中,選擇 [Visual Basic] 或 [Visual C#]。在 [範本] 窗格中按一下 [WPF 瀏覽器應用程式]。

  3. 指定專案名稱,然後按一下 [確定] 建立新專案。

WPF 瀏覽器專案範本會建立包含下列項目的 XBAP 應用程式專案:

  • 應用程式定義 Application.xaml。

  • 頁面 Page1.xaml。

您可以視需要加入這些項目。

如果您想要使用需要命令列編譯的工具來執行開發工作,請參閱建置 WPF 應用程式 (WPF)

執行 XBAP 時,它會在瀏覽器視窗而非獨立視窗中啟動。當您從 Visual Studio 偵錯 XBAP 時,應用程式會以網際網路區域權限執行,因此如果超過這些權限,便會擲回安全性例外狀況 (Exception)。如需詳細資訊,請參閱建置 WPF 應用程式 (WPF)

部署 XAML 瀏覽器應用程式

當您建置 (Build) XBAP 時,Microsoft Build Engine (MSBuild) 至少會產生下列三個檔案:

  • 一個可執行檔。這個檔案包含編譯過的程式碼,且其副檔名為 .exe。

  • 一份應用程式資訊清單。這份資訊清單包含與應用程式關聯的中繼資料 (Metadata),且其副檔名為 .manifest。

  • 一份部署資訊清單。這個檔案包含 ClickOnce 用來部署應用程式的資訊,且其副檔名為 .xbap。

將 XBAP 發佈至 Web 伺服器 (Microsoft Internet Information Services (IIS) (含) 以後版本)。您不需要在 Web 伺服器上安裝 .NET Framework,但是必須註冊 WPF 多用途網際網路郵件延伸標準 (MIME) 型別和副檔名。如需詳細資訊,請參閱 HOW TO:設定 IIS 5.0 和 IIS 6.0 以部署 WPF 應用程式

若要準備 XBAP 以進行部署,請將 .exe 和相關資訊清單複製到 Web 伺服器。在 Web 網頁上建立超連結,以巡覽至部署資訊清單。當使用者按一下連結並巡覽至 .xbap 檔案時,ClickOnce 會自動處理下載及啟動應用程式的機制。

清除快取 XBAP

某些情況下,在重新建置並啟動 XBAP 之後,您可能會發現啟動的是舊版 XBAP。例如,當 XBAP 組件 (Assembly) 版本號碼是靜態的,而您又從命令列啟動 XBAP 時,就有可能發生這種情況。在這種情況下,因為快取版本 (先前啟動的版本) 和新版本的版本號碼相同,所以不會下載新版本的 XBAP,而會下載快取的版本。

在這種情況下,您可以從命令列使用 Mage 命令 (隨 Windows SDK 一併安裝) 移除快取的版本:

Mage.exe -cc

這可確保啟動的是最新版的 XBAP,因為快取的版本並不存在。若您按下 F5 以使用 Visual Studio 2005 進行偵錯,應該會啟動最新版的 XBAP。

一般而言,您應該隨著每個組建 (Build) 來更新組件版本號碼。

XBAP 安全性考量

XBAP 必須在受限於網際網路區域權限集合的部分信任安全性沙箱中執行。因此,您的實作 (Implementation) 必須支援網際網路區域所支援的 WPF 項目子集 (請參閱 Windows Presentation Foundation 安全性)。

將 WebBrowser ActiveX 控制項 (WebOC) 裝載於 Internet Explorer 瀏覽器處理序中,則會套用下列安全性限制。

  • Internet Explorer 會封鎖來自 DHTML alert 函式的強制回應對話方塊,以及裝載於 HTML 中的 ActiveX 控制項。如果對話方塊的來源執行緒,不是使用中索引標籤的執行緒,則 Internet Explorer 會隱藏這個對話方塊。

  • 在 HTML 頁面中跨網域載入 XBAP 時,裝載 WebOC 控制項會引發例外狀況。

XBAP 開始時間效能考量

XBAP 效能的一個重要面向在於其開始時間。如果 XBAP 是第一個載入的 WPF 應用程式,「冷啟動」(Cold Start) 時間可能為 10 秒鐘或更久。這是因為進度頁是由 WPF 呈現,且必須 CLR 和 WPF 都已冷啟動才能顯示這個頁面。 

從 Visual Studio 2008 SP1 開始,XBAP 冷啟動時間已經藉由在部署循環早期顯示 Unmanaged 進度頁而降低。此進度頁幾乎在應用程式啟動後就會立即顯示,因為它是以原生裝載程式碼顯示並以 HTML 呈現。 

此外,ClickOnce 下載序列的並行也已改良,讓開始時間的效能提升百分之十。ClickOnce 下載並驗證資訊清單後,應用程式下載隨即開始,進度列也會開始更新。 

變更記錄

日期

記錄

原因

2008 年 7 月

加入 XBAP 開始時間效能的章節。

SP1 功能變更。