.NET智能用戶端(SmartClient)
來源:互聯網
上載者:User
簡介
智能用戶端的概念作為Microsoft.net平台的一個特性而被提出,其實它的很多功能在傳統的應用程式中早已存在,只是.net平台從系統和語言層級對它提供了支援,使開發智能用戶端應用程式更為便捷。本文將從公司專屬應用程式系統的角度來討論智能用戶端應具有的功能和特性以及如何在.net平台上實現。
概述
1、當前的用戶端應用程式模型比較
當前的用戶端應用程式模型大致分為兩種:C/S(用戶端/伺服器模型)和B/S(瀏覽器/伺服器模型)。以企業環境為對象的軟體開發人員,對於以瀏覽器為基礎的精簡型用戶端 (Thin Client) 應用程式模型,以及對應的豐富型用戶端 (Rich Client) 之間,究竟該如何取捨,面臨了困難的世代替換。
以瀏覽器為基礎的應用程式的優缺點:
# 易於安裝:可以用於許多桌上型電腦,並且和客戶機算計的操作平台無關。大多數電腦已經預設安裝有瀏覽器軟體(有些應用系統需要基於IE瀏覽器,或者需要安裝Java虛擬機器,在此暫且忽略不及)。
# 易於部署與維護:只需要在伺服器端進行部署和維護工作。
# 必須線上工作:工作效率和網路是否延遲有關。
# 不能充分利用用戶端電腦的資源:只能通過有限的Html語言來呈現使用者介面,沒有利用用戶端電腦的計算處理能力。只能利用瀏覽器的列印功能來列印資料,不適用於企業的報表列印。
# 網路傳輸量大:由於用戶端不能儲存狀態資料,因此必須在用戶端和伺服器之間傳輸使用者介面內容以及所需的資料。
# 安全性較低。對於伺服器來說可以通過防火牆軟體來過濾資料,因為所有傳輸內容都是基於HTTP連接埠。但很難對資料進行加密和簽名以保證在傳輸過程中的完整性。(HTTPS似乎並不能解決問題)
# 適合電子商務或不要求嚴格控制用戶端的應用程式。
豐富型用戶端應用程式的優缺點:
# 可以離線工作:前提是本地必須有快取資料的能力,這涉及到與伺服器資料同步的問題。
# 充分利用用戶端電腦的資源:可以為使用者提供豐富的介面元素,可以存取本機磁碟與本機應用程式介面 (API),執行速度較快。
# 網路傳輸量較小:只需在用戶端和伺服器之間傳輸資料。
# 安全性較高。可以方便的在用戶端和伺服器執行加密和解密操作,同時也可以通過Web Service來消除傳統的應用程式諸如防火牆和HTTP的障礙。
# 安裝、部署和維護工作較為繁瑣:對用戶端電腦在操作平台和附加軟體上有一定的限制和要求。
# 適合企業內部應用程式。
目前,還有一種不是基於瀏覽器的瘦用戶端應用程式。通過諸如Microsoft Terminal Server、Citrix System的Independent Computing Architecture和MetaFrame產品這樣的技術和工具把它們提供給使用者。這些類型的解決方案可以讓使用者運用胖用戶端的經驗,並通過集中的軟體安裝和維護來進行治理,這對公司來說是很划算的。這種模式的問題是,當應用程式沒有串連到應用伺服器時,使用者就不能用了。用戶端不進行真正的處理,處理完全依靠應用程式伺服器,這種情況會導致伺服器效能問題,並消耗案頭電腦的CPU周期。
總之,相對於豐富型用戶端,以瀏覽器為基礎的模型對於資訊科技 (IT) 系統治理員而言是非常棒的模型,但對於開發人員與使用者而言卻有很多不足的地方。
Microsoft .NET Framework 將滿足這三方的需求。它的智能型用戶端應用程式模型結合了豐富型用戶端模型的強大功能與彈性,還有以瀏覽器為基礎之模型的輕易部署與穩定性。
2、用戶端應用程式還應具備的其他功能
對於公司專屬應用程式系統來說,用戶端應用程式作為整個系統與使用者的互動介面,還需要考慮以下
功能:
# 安全性:這裡的安全性主要是指應用程式層次的安全性,主要通過使用者權限、角色指派來實現。對於用戶端應用程式來說,通常需要提供一個登入表單或登入頁面來完成使用者身份的認證。對安全性要求較高的應用系統可能還需要通過公用密鑰基礎設施(PKI)為應用提供可靠的安全服務,用戶端則附加了加密簽名模組。
# 可擴充性:用戶端應用程式應該具有包含各種不同類型的應用模組的能力,同時又能在使用過程中的不斷的增加應用來完善整個系統。因此可以將用戶端應用程式設計為一個容器,而各個應用模組作為組件由容器進行動態載入。
# 可配置性:由於使用者權限和使用者喜好的不同,用戶端載入的應用組件以及呈現的表現形式都因人而異。需要由應用系統將使用者權限的範圍以及使用者的個人化配置資訊傳遞給用戶端,由用戶端應用程式來解釋並呈現相應的使用者介面。
定義
綜上所述,我們對智能用戶端應用程式模型下一個概括性的定義:一個可擴充的能整合不同應用的傳統型應用程式,並具有以下特徵:
# 無接觸部署:安裝時只要將一個主程式檔案下載到本地,直接運行即可,無須改變註冊表或共用的系統組件,其他應用組件將在第一次運行時自動下載。
# 自動更新:只需將新版本的程式發布在伺服器上,由用戶端自動探索最新版本的程式和應用組件,並自動下載和更新。
# 離線運用:答應脫離伺服器時,利用本地的用戶端程式和應用組件進行工作。
# 動態載入應用組件:應用軟體開發商可根據公司專屬應用程式系統的公用介面進行開發,然後將應用組件發布在企業的伺服器上,用戶端應用程式將自動探索並載入該應用組件。
# 個人化使用者介面:使用者可根據喜好自行設定用戶端應用程式,配置資訊將被儲存到伺服器上。
以下我們將以.net平台WinForms應用程式為例,對上述特徵進行具體描述。
.net平台WinForms應用程式舉例
一、系統需求
1、用戶端軟體要求
任何支援 .NET Framework 的作業系統
已安裝 SP1 的 .NET Framework
Internet EXPlorer 5.0.1 或更高版本
2、伺服器軟體要求
自動發布、補救伺服器:Microsoft .NET Framework、MDAC2.7、IIS
二、運行方式
用戶端應用程式有兩種運行方式,不同的運行方式將直接影響以後的程式集發布和更新,以下將具體解釋:
1、網路運行
.NET Framework 安裝提供了一個掛接 Internet Explorer 5.01 和更高版本以偵聽所請求的 .NET 程式集的機制。在請求期間,可執行程式被下載到磁碟上稱為程式集下載快取的位置(Windows2000下為:C:\Documents and Settings\Administrator \Local Settings\Application Data\assembly下的某個子目錄中),同時該程式集本身以及它引用的其他相關程式集也被下載到本地IE緩衝中(Windows2000下為:C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files)。然後,名為 IEExec 的進程在具有有限安全設定的環境中啟動該應用程式。例如:您可以在IE的地址欄中輸入一個發行在web伺服器上的.net可執行程式(http://SmartClient/MyApplication.Exe),IE並不會像其他檔案一樣提示您另存新檔,而是直接執行該程式。
通過這種方式啟動並執行應用程式擁有非常有限的安全設定(Internet許可權集),該許可權集中的許可權包括:安全性、檔案對話方塊、正在列印、隔離儲存區 (Isolated Storage)檔案、使用者介面。隔離儲存區 (Isolated Storage)檔案答應您的應用程式儲存一些資料(Windows2000下為:C:\Documents and Settings\Administrator.TOMATO\Local Settings\Application Data\IsolatedStorage下的某個子目錄中,預設儲存空間大小為10MB),您可以通過System.IO.IsolatedStorage命名空間中的類來儲存資料而不會拋出安全異常。
舉例:
//按使用者、域、程式集擷取隔離儲存區 (Isolated Storage)區
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User
IsolatedStorageScope.Domain IsolatedStorageScope.Assembly, null, null);
//建立目錄
isoStore.CreateDirectory("TestDir");
//建立檔案
IsolatedStorageFileStream isoStream1 = new IsolatedStorageFileStream
("TestDir//test.txt", FileMode.Create, isoStore);
//寫入檔案
StreamWriter writer = null;
writer = new StreamWriter(isoStream1);
writer.WriteLine("Hello Isolated Storage");
writer.Close();
isoStream1.Close();
為了讓你的智能應用程式運轉,你需要改變一些用戶端的安全設定,實質上就是通知用戶端已耗用時間相信你的應用程式。一種方法就是將帶有你的程式集的網站添加到IE中可信任網站清單中,然後用安裝在你的治理工具目錄下的Microsoft .NET Framework Configuration工具來修改.NET Framework安全設定。開啟Framework Configuration工具,選擇運行庫安全性原則,然後選擇調整安全區域。對於受信任網站中指定的所有網站,將信任層級調整到完全信任。作為選擇,你也可以用Framework Configuaration工具來修改安全性原則,使它信任你的應用程式的個別程式集。右擊運行庫安全性原則,選擇提高程式集的信任層級。
另一個可選擇的方法就是用程式碼群組,用Framework Configuration工具來協助你提高應用系統的程式集的安全設定。你需要讓所有運用你的應用程式的案頭使用者做這種改變。為了協助完成該任務,Framework Configuration工具可以建立一個包含安全性原則的Microsoft Installer (MSI)部署套件。MSI安裝了應用程式載入器來分布你的應用程式需要的安全性原則和載入器裝配。右擊運行庫安全性原則,選擇建立部署套件。
在網路運行中,自動更新是依靠IE的緩衝機制來完成的。即當您需要下載並運行一個應用程式時,IE將向Web伺服器發送一個HTTP請求,該請求將擷取伺服器上該程式的最新更新日期,假如該日期大於本機快取的程式的日期或者本機快取中不存在該程式,則從伺服器上下載,否則直接使用本機快取的程式。因此對於.net本身所具有的版