XAML Browser Application

XAML Browser Application，最开始叫xapp，后来在Sept CTP中叫wba，是美國微軟公司所提出的新技術，以XAML作為使用者介面（UI）之描述，寄宿（hosted）在瀏覽器（IE web browser sandbox）中執行的程式。XBAP可以取代ActiveX、Java Applet、Flash等功能，有人稱之為下一代的ActiveX（next-generation ActiveX）。XAML Browser Application的副檔名是.xbap。

 環境設定 
在執行XBAP之前，必須先設定：
.NET Framework 3.0 Runtime   
Windows SDK for .NET Framework 3.0 
Visual Studio 2005 extensions for .NET Framework 3.0（November 2006 CTP）

 特點 
 XBAPS更易於與DHTML結合。
 XBAPS一旦使用寬鬆XAML（loose XAML）或使用IFRAME，必執行於安全的沙盒（secure sandbox）。
 XBAPS可以使用WPF（Windows Presentation Foundation）的98.2%的功能。
 XBAPS必須執行於iFrame之下。
 XBAPS必須執行於DocumentObject應用程式之下，利用querystring溝通。
 XBAPS目前僅支援IE6或IE7。

 安全性 
 XBAP程式無法使用檔案系統（file system）。
 XBAP程式無法呼叫對話視窗（dialog）。
 XBAP程式如同DHTML，是網路直接安装執行，可能遇到安全性问题，所以XBAP程序必須具備内嵌數位簽名。<ManifestKeyFile>指定签字用的证书文件名，<ManifestCertificateThumbprint>指定證明文件摘要。
 XBAP中只允許通過HTTP和SOAP訪問Web Services。

 規劃 
XAML与HTML一样是flow layout，Grid類似HTML中的Table，使整個頁面的顯示方式變成網格式区域。微軟還推荐使用StackPanel，DockPanel等继承自Panel的規劃方式，Panel在使用上的類似HTML的{{<}}DIV{{>}}{{<}}\DIV{{>}}。

 導航 
 NavigationService 
WPF提供了一個最重要的頁面導航物件NavigationService，可用來調整頁面之用。NavigationService物件提供有下列功能： 
public void Navigate(Uri source)
public void Refresh()
public void StopLoading()
public void GoBack()
public void GoForward()
public void AddBackEntry()
public void RemoveBackEntry()
public static NavigationService GetNavigationService(DependencyObject dependencyObject);

 structured navigation 
structured navigation可用於處理頁面與頁面之間的資料共享。WPF支援PageFunction這樣的頁面標籤。

 <PageFunction
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x=" "
    xmlns:sys="clr-namespace:System;assembly=mscorlib" 
    x:Class="StructuredNavigationSample.TestPageFunction"
    x:TypeArguments="sys:String"
    Title="Test for Page Function" WindowWidth="250" WindowHeight="150">
    ......
 </PageFuntion>

 範例 
將3D動畫置入iframe：


將XBAP置入iframe：
  <head>




 差異 
WinFX Windows Application和WinFX Web Browser Application有些微的差別，在.xaml檔案中，Browser Application中，預設起始页的根元素（root element）为Page；Windows Application中，預設起始页的根元素为Window。另外，Window class无法在Browser Application中使用，因為IE浏览器中的WPF程序是在部分信任的沙箱（sandbox）内執行。




 參見 
 MCML
 WPF/E

 外部連結 
XBap.org 
XBAP = next-generation ActiveX?

Category:Microsoft Windows