SL3當中的Out Of Browser功能
前陣子有讀者問到SL3的Out Of Browser功能,我才發現我在Blog上似乎跳過了,因為這個功能雖然是SL3的重要新功能,但是因為相對而言是相當簡單的,所以可能被我略過了。
Out of Browser是SL3當中的重要功能之一,它讓SL應用程式在瀏覽器外執行。不過實際上使用此功能卻相當簡單,只需要在Silverlight專案上按下滑鼠右鍵,選擇Properties,在顯示出的屬性視窗上就可以設定了:
相關的細節可以點選[Out-of-Browser Settings]按鈕進行設定。
絕大部分的參數細項,均可透過設定指定完成。設定好了之後,這個SL應用程式就支援Out of Browser。這時候,使用者可以隨自己的需要,將該SL應用程式安裝到用戶端,安裝時只需要在網頁上按下滑鼠右鍵,就會出現底下這樣的選單:
點選『安裝到此電腦』,使用者即可直接將應用程式安裝到用戶端,甚至會為您建立桌面捷徑或是開始功能表捷徑(依照使用者自行選擇而定)。
除了以設定的方式為SL應用程是添加Out of Browser功能之外,我們也可以透過底下這樣的程式碼,將SL應用程式安裝到用戶端:
從上面的程式碼您可以發現,我們可以透過『Application.Current.Install()』將SL應用程式安裝在用戶端,也可以透過『Application.Current.InstallState』來得知目前該應用程式的安裝狀況。
除了取得應用程式是否已經安裝到用戶端等資訊之外,幾個與Out of Browser有關的資訊取得方式我們分別列舉如下。
首先,我們可以透過底下的程式碼,來判斷目前用戶端網路是否可以使用:
這個功能的目的,是在協助SL開發人員,可以更輕易的建構出離線運算的應用程式,我們不僅可以透過上面這個指令得知目前的網路連線狀況,還可透過底下的方式,讓網路連線狀況改變時,可以觸發我們所安排的程序:
若我們需要得知目前應用程式是否為Out of Browser執行,則可透過底下的指令:
前面介紹的這幾個函式,可以幫助我們得知目前應用程式執行的狀況、判斷網路的連線,讓我們得以決定目前應用程是要以何種方式執行。
透過這些機制,我們也以SL撰寫離線應用,例如當應用程式是連線狀態時,可直接透過.NET RIA Services存取遠端的資料庫,而當應用程式是離線狀態時,則暫時將資料透過IsolatedStorage機制存放在用戶端(瀏覽器端),或是透過SaveFileDialog將資料先存起來,待偵測到連線後再將資料回寫到遠端的資料庫中。
Out of Browser是SL3當中的重要功能之一,它讓SL應用程式在瀏覽器外執行。不過實際上使用此功能卻相當簡單,只需要在Silverlight專案上按下滑鼠右鍵,選擇Properties,在顯示出的屬性視窗上就可以設定了:
相關的細節可以點選[Out-of-Browser Settings]按鈕進行設定。
絕大部分的參數細項,均可透過設定指定完成。設定好了之後,這個SL應用程式就支援Out of Browser。這時候,使用者可以隨自己的需要,將該SL應用程式安裝到用戶端,安裝時只需要在網頁上按下滑鼠右鍵,就會出現底下這樣的選單:
點選『安裝到此電腦』,使用者即可直接將應用程式安裝到用戶端,甚至會為您建立桌面捷徑或是開始功能表捷徑(依照使用者自行選擇而定)。
除了以設定的方式為SL應用程是添加Out of Browser功能之外,我們也可以透過底下這樣的程式碼,將SL應用程式安裝到用戶端:
'用戶點選安裝鈕
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs)
'安裝在用戶端
If Application.Current.InstallState = InstallState.NotInstalled Then
'安裝
Application.Current.Install()
End If
End Sub
從上面的程式碼您可以發現,我們可以透過『Application.Current.Install()』將SL應用程式安裝在用戶端,也可以透過『Application.Current.InstallState』來得知目前該應用程式的安裝狀況。
除了取得應用程式是否已經安裝到用戶端等資訊之外,幾個與Out of Browser有關的資訊取得方式我們分別列舉如下。
首先,我們可以透過底下的程式碼,來判斷目前用戶端網路是否可以使用:
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
這個功能的目的,是在協助SL開發人員,可以更輕易的建構出離線運算的應用程式,我們不僅可以透過上面這個指令得知目前的網路連線狀況,還可透過底下的方式,讓網路連線狀況改變時,可以觸發我們所安排的程序:
若我們需要得知目前應用程式是否為Out of Browser執行,則可透過底下的指令:
Application.Current.IsRunningOutOfBrowser()
前面介紹的這幾個函式,可以幫助我們得知目前應用程式執行的狀況、判斷網路的連線,讓我們得以決定目前應用程是要以何種方式執行。
透過這些機制,我們也以SL撰寫離線應用,例如當應用程式是連線狀態時,可直接透過.NET RIA Services存取遠端的資料庫,而當應用程式是離線狀態時,則暫時將資料透過IsolatedStorage機制存放在用戶端(瀏覽器端),或是透過SaveFileDialog將資料先存起來,待偵測到連線後再將資料回寫到遠端的資料庫中。
留言