智能客户端研究笔记(三)
發布程序
??? 1、在發布和更新服務器上設置一個虛擬目錄(如:SmartClient)將應用組件的所有文件放置在相應的目錄下。
??? 虛擬目錄的設置屬性中必須包括:讀取和目錄瀏覽權限,執行許可為純腳本。
??? 對于本地運行方式,需要根據客戶端應用程序的版本號設置多個目錄,每個目錄存放不同版本的所有文件。(也可以在新版本目錄下只存放更新了的文件,但需要修改更新組件。當用戶更新版本時,必須下載大于當前版本的所有新版本目錄下的文件,以防止某些情況下會出現某個版本的文件被遺漏的問題)。
??? 在本地運行方式中,還需要在根目錄下維護一個更新版本清單文件,因為它允許用戶以老版本客戶端應用程序登錄。
??? 2、發布一個Web Service。該Web服務主要完成以下任務:
- 執行客戶端用戶的身份驗證
- 從整個應用系統的安全模塊中獲取該用戶允許執行的應用組件的清單,包含應用組件的位置、文件名稱和應用組件本身所需的配置信息。(在本地運行方式下,該清單還和版本有關)
- 從數據庫中獲取該用戶的個性化配置信息,和上一步獲取的信息合并為一個XML文件流。
- 將該配置文件流作為返回參數返回給客戶端應用程序。
??? 3、將客戶端應用程序放置在虛擬根目錄下作為應用組件程序集的加載器,同時在企業內部網站上增加一個指向客戶端應用程序的鏈接。對于網絡運行方式,還將提供一個安全策略部署包(MSI)文件的鏈接。
??? 用戶第一次運行時的執行步驟
??? 網絡運行方式:
- 下載并安裝安全策略部署包
- 通過點擊客戶端應用程序的鏈接,下載并執行客戶端應用程序
- 將該鏈接添加到收藏夾中或建立桌面快捷方式,以便于運行
??? 本地運行方式:
- 不直接點擊客戶端應用程序的鏈接,將此鏈接另存到用戶選擇的目錄下
- 在資源管理器中執行客戶端應用程序
- 在桌面上建立可執行文件的快捷方式,以便于運行
?更新程序
???????? 網絡運行方式的更新步驟較為簡單,只須將更新了的文件直接覆蓋老文件即可。其缺點是某些程序集附帶的引用文件不能自動下載新版本,只有清空客戶端的IE緩存后才能實現更新。
??? 本地運行方式的更新步驟如下:
- 在服務器虛擬根目錄下新建一個以新版本號命名的目錄,增量更新只需將更新了的文件復制到該目錄下,否則需要將所有文件都復制到目錄。
- 修改保存所有版本清單的文件,并指明當前活動的最新版本號,用于和客戶端進行版本比較。
??? 六、擴展應用組件
??? 為了實現企業應用系統的可擴展性,通過接口定義,可以使應用開發商通過實現這些接口將自己的應用組件方便的添加到客戶端應用程序中。以下介紹一些接口中主要包含的方法和屬性。
??? 對于MDI應用程序,可以在啟動窗體的關閉事件中處理而不需要該方法。
???? ? 客戶端應用程序內的應用組件加載器可以通過枚舉組件程序集內的類型來判斷該組件是否符合借口定義。同時可以將多個應用組件打包在一個應用程序集中。此過程非常耗時。
示例:
//根據程序集文件名稱,加載程序集
Assembly asm = Assembly.LoadFrom(assemblyFile);
Type[] types = asm.GetTypes();
//搜索程序集中的所有類型
foreach (Type t in types)
{
??? //指示類型是否由引用封送,支持遠程處理
??? if (!t.IsMarshalByRef)
??? continue;
??? //判斷該程序集的類型是否有符合應用組件接口的類型
??? if (Array.IndexOf(t.GetInterfaces(), pluginType) > 0)
??? {
??????? ...
??? }
}
參考資源鏈接
1、Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
http://msdn.microsoft.com/msdnmag/issues/02/07/NetSmartClients/default.aspx
2、Smart Client Application Model and the .NET Framework
http://msdn.microsoft.com/netframework/techinfo/articles/smartclient/default.asp
3、State Sanity Using Smart Clients
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnforms/html/Winforms05202002.asp
4、Increasing Permissions for Web-Deployed Windows Forms Applications
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnforms/html/winforms11122002.asp
5、.NET Application Updater Component
http://www.gotdotnet.com/team/windowsforms
這一節,沒啥可說的
轉載于:https://www.cnblogs.com/William_Fire/articles/47578.html
總結
以上是生活随笔為你收集整理的智能客户端研究笔记(三)的全部內容,希望文章能夠幫你解決所遇到的問題。