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程序必須具備内嵌數位簽名。指定签字用的证书文件名,指定證明文件摘要。
- 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這樣的頁面標籤。
......
範例
將3D動畫置入iframe:
將XBAP置入iframe:
差異
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
外部連結
*[http://www.xbap.org/ XBap.org]
*[http://rrelyea.spaces.live.com/blog/cns!167AD7A5AB58D5FE!1553.entry XBAP = next-generation ActiveX?]
评论 (0)