Silverlight實例教程 - Out of Browser開篇
Silverlight 實例教程索引
- Silverlight 實例教程 - Out of Browser開篇
- Silverlight 實例教程 - Out of Browser配置,安裝和卸載
- Silverlight 實例教程 - Out of Browser的自定義應用
- Silverlight 實例教程 - Out of Browser存取本地文件系統
- Silverlight 實例教程 - Out of Browser與COM的交互基礎
- Silverlight 實例教程 - Out of Browser與Office的互操作
- Silverlight 實例教程 - Out of Browser的Debug和Notifications窗口
- Silverlight 實例教程 - Out of Browser音樂播放器
- Silverlight 實例教程 - Out of Browser與COM互操作實例
- Silverlight 實例教程 - Out of Browser在線更新和Silent安裝
眾所周知,學習一門IT技術,最關鍵的是實踐,無論是軟件開發還是網絡調試,只要在真實環境下勤于動手和思考,很快就能掌握一門技術,Silverlight也不例外。為了幫助更多朋友快速學習掌握Silverlight應用開發,我計劃以實例應用的方式,講述Silverlight的各個特性,從而達到在學習理論的基礎上,和實踐相結合的目的。在每個階段的實例教程中,將圍繞一個Silverlight特性為核心主題進行擴展學習。
我的開發環境是:
- Windows 7 Ultimate 英文版
- Visual Studio 2010 Premium 英文版
- Expression Blend 4 Premium 英文版
- Silverlight 4
第一篇Silverlight實例應用,我們從Silverlight的Out-of-Browser開始。在實例開始之前,我們對Silverlight的Out-of-Browser進行一個理論回顧。
什么是Silverlight的Out-of-Browser應用?
Silverlight Out-of-Browser應用,從字面理解是Silverlight脫離瀏覽器的應用,也可以理解為Silverlight離線應用,簡稱為OOB。微軟給出的解釋是OOB應用是可以安裝到本地的運行在瀏覽器之外的應用,簡單的理解,Silverlight OOB應用就是一個不需要存取HTML DOM,并且完全脫離瀏覽器,具有獨立窗口的Web應用。微軟在Silverlight 3已經發布該功能,由于當時Silverlight 3的種種限制,Silverlight的OOB應用基本沒有過多的發展,但是這個新特性給當時的開發人員留下了深刻的印象,微軟在隨后的Silverlight 4版本中,對OOB功能進行的強化,例如OOB的權限信任支持,自定義窗口設計支持,消息通告API支持等。這些功能,不僅增強了Silverlight跨平臺應用功能支持,而且還加大了用戶對Silverlight離線應用的體驗。
讓我們看一個Silverlight OOB的案例,下圖是新浪財經的Silverlight OOB應用,該應用作為獨立窗口運行,沒有基于瀏覽器,
Silverlight Out-of-Browser的運行原理?
Tim Heuer是微軟Silverlight項目經理,他的博客中曾經發表過相關Silverlight Out-of-Browser的運行原理 , 在這里我們以簡單的方式理解一下Silverlight OOB的運行原理。
作為Silverlight開發人員應該都知道訪問Silverlight應用其實就是對服務器端的XAP文件進行讀取,Silverlight OOB同樣是基于Silverlight技術的應用,所以OOB應用也是訪問運行XAP文件,但是該文件是來自本地的目錄。 Silverlight OOB應用的訪問步驟:
1. 首先需要配置AppManifest.xml,使應用支持Out-of-Browser;
2. 然后安裝OOB應用,這時Silverlight項目的XAP文件將被下載到一個本地目錄存儲;
3. 在本地運行OOB應用,這時,應用會根據XAP的原始URL發出請求,檢測是否有新版本,如果有,則更新,如果沒有將繼續運行;
以上是最簡單的理解,在網絡上有一篇翻譯Tim的文章,大家可以閱讀Silverlight OOB的運行原理中文版加深理解。
Silverlight Out-of-Browser的存儲位置?
上文已經講到Silverlight OOB應用,安裝成功后,XAP將保存在本地目錄,而這個目錄從桌面快捷方式是無法查看到的,例如剛才我們演示的新浪財經OOB應用,在快捷方式中,僅顯示“"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 3161465351.vip.stock.finance.sina.com.cn”, 從上面目錄下的metadata元數據文件中可以得知3161465351.vip.stock.finance.sina.com.cn是該用戶的唯一的AppID。
而其真實存儲目錄則在C:\Users\<login id>\AppData\Local\Microsoft\Silverlight\OutOfBrowser\3161465351.vip.stock.finance.sina.com.cn,
2 LaunchPath=C:\Users\kevin.fan\AppData\Local\Microsoft\Silverlight\OutOfBrowser\3161465351.vip.stock.finance.sina.com.cn\index.html
3 CustomIcon=1
4 TrimmedSourceDomain=vip.stock.finance.sina.com.cn
5 TrimmedTitle=新浪財經
6 TrimmedName=新浪財經
7 ElevatedPermissions=2147483647
8 XapLastModified=Thu, 27 May 2010 07:01:27 GMT
9 EnableGPUAcceleration=False
10 WindowStartupLocation=0
11 WindowTop=0
12 WindowLeft=0
13 WindowWidth=800
14 WindowStyle=0
15 WindowHeight=600
16 SourceDomain=vip.stock.finance.sina.com.cn
17 OriginalSourceUri=http://vip.stock.finance.sina.com.cn/silverpulse/ClientBin/Loader.xap
18 FinalAppUri=http://vip.stock.finance.sina.com.cn/silverpulse/ClientBin/Loader.xap
19 RuntimeVersion=4.0.50401.0
20 AppID=3161465351.vip.stock.finance.sina.com.cn
21 Description=新浪財經
22 Title=新浪財經
23 Name=新浪財經
Silverlight In-of-Browser和Silverlight Out-of-Browser的對比
在Silverlight 4中,微軟對OOB功能進行了強化,對比Silverlight In-of-Browser和Out-of-Browser,在功能上有著很大的差異,
1. OOB應用最大的特點是用戶可以不需要任何網絡支持在本地運行應用;
2. OOB應用支持Trust權限提升功能,也就是所謂的Elevated Trust模式,該模式是Silverlight 4 OOB強化中最關鍵的特征之一,通過權限提升,OOB應用可以做到許多Windows應用功能,例如:
a. 在權限允許的情況下,OOB應用可以訪問本地文件目錄;
b. 在權限允許的情況下,OOB應用可以被鎖定顯示自定義應用圖標在Windows開始菜單和任務欄中;
c. 在權限允許的情況下,OOB應用可以訪問COM API;
d. 在權限允許的情況下,OOB應用支持XAP簽名認證;
e. 在權限允許的情況下,OOB應用支持消息通知API調用;
d. 在權限允許的情況下,OOB支持HTML WebBrowser;
3. OOB應用每次運行都需要進行版本升級檢查,而In-of-Browser則是項目運行時自動更新;
4. OOB應用無法接收初始化參數數據,而In-of-Browser可以;
5. 對于Isolated Storage空間的分配,OOB應用默認分配25M,而基于瀏覽器的Silverlight應用僅為1M,但是兩者都允許用戶進行自定義擴展;
以上是Silverlight Out-of-Browser的一些基本理論,在理論的基礎上,我們將開始下一篇的實例演示。