熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

.NET應用自動部署窗體技術詳解(4)

2013-11-23 19:36:53  來源: Java核心技術 

  部署NET安全策略
  在前面一節中我們創建了一個安全策略信任來自的代碼在實際應用中還存在這樣一個問題即我們應當方便用戶不能要求每一個用戶按照同樣的步驟設置安全策略
  解決辦法很簡單設置好安全策略之後我們還可以將安全策略分發給用戶用戶只需一次點擊就可以完成全部設置
  首先我們要創建一個部署包它將通過Windows安裝文件(MSI)文件把安全策略安裝到用戶的機器上操作方法是右擊運行庫安全策略選擇創建部署包如圖
  
 

  
創建一個部署包

  部署包的安全策略級別分三種企業計算機用戶本例中我們創建一個計算機策略的部署包如圖注意部署包的擴展名是MSI
  

  
設置要部署的安全策略為計算機策略

  創建好部署包之後可以將它分發給用戶只要雙擊運行msi文件Windows安裝程序就會自動安裝msi文件中定義的安全策略另外網絡管理員還可以通過適當的配置將配置安全策略的部署包自動發布給每一個用戶
  深入理解AssemblyLoadFrom
  現在我們來看看用AssemblyLoadFrom從遠程服務器下載一個程序集時背後發生的事情以下面的代碼為例
  指定URL
  Dim URL As String
  URL = _
 
  從指定的URL裝入程序集
  Dim a As [Assembly]
  a = [Assembly]LoadFrom(URL)
  當NET執行LoadFrom方法時它訪//localhost/CodeDownloadDemo尋找Web服務器上的ModuleAdll程序集在此過程中NET會檢查以前是否下載過該程序集如果從來沒有下載過NET就下載該程序集並把它保存到NET程序集下載緩沖區
  第二次運行同樣的代碼時NET知道該程序集以前已經下載過一次如果Web服務器上程序集的版本和本地程序集下載緩沖區中的版本一樣NET就使用已經下載到磁盤上的程序集
  假設我們現在第三次運行上述代碼NET檢測到Web服務器上程序集的版本要比本地緩沖的版本新這時NET就會重新下載新版的程序集把它保存到程序集下載緩沖區並運行它程序集下載緩沖區是位於\windows\assembly\download的一個特殊文件夾
  必須指出的是在比較程序集的本地版本和遠程版本哪一個更新時NET的判斷依據是程序集的時間標記而不是程序集的版本號這一點很重要特別地如果有多個程序員協同開發和編譯程序集應當注意計算機的時間設置問題
  當Web服務器不可用時
  如果執行AssemblyLoadFrom時//localhost/CodeDownLoadDemo/的Web服務器不可用例如用戶的Internet連接出了故障或者用戶正在旅途中使用筆記本這時應該怎麼辦?在這種情況下LoadFrom執行失敗用戶不能從遠程服務器上的程序集裝入類
  有一種解決辦法雖然不那麼完美但確實行得通即用戶只要把浏覽器設置成脫機工作模式就可以了如此設置之後AssemblyLoadFrom就自動知道它應該使用程序集的下載緩沖區
  結束語
  上面介紹的所有技術都有一個限制即如果要讓自動部署技術能夠在用戶的機器上正常發揮所有機器必須安裝NET框架雖然NET框架是免費的但不一定每一個用戶都會去安裝它如果應用程序一定要求用戶下載和安裝 MB的NET框架用戶對應用程序的印象可能會受到影響
  越來越多的新計算機會預先裝好NET框架所以該問題的影響應該越來越小目前臨時的解決辦法是用Install Shield或Wise Installer之類的工具創建一個典型配置的NET框架安裝包實現NET框架自動安裝
  NET自動部署是一種非常強大的技術它能夠有效地減少部署胖客戶端程序過程中面臨的問題充分運用NET自動部署技術我們可以保證用戶總是使用最新版本的代碼卻不必要求用戶頻繁地去訪問某個網站下載更新軟件
  NET自動部署技術一項很重要的特性是安全它使得用戶既可以從指定的遠程地點下載程序同時有效地保障用戶不會意外地運行來源不明的代碼

From:http://tw.wingwit.com/Article/program/Java/hx/201311/27182.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.