国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
智能客戶端一些摘抄
 
  為了讓你的智能應(yīng)用程序運(yùn)轉(zhuǎn),你需要改變一些客戶端的安全設(shè)置,實(shí)質(zhì)上就是通知客戶端運(yùn)行時(shí)間相信你的應(yīng)用程序。一種方法就是將帶有你的程序集的站點(diǎn)添加到IE中可信任站點(diǎn)清單中,然后用安裝在你的管理工具目錄下的Microsoft   .NET   Framework   Configuration工具來修改.NET   Framework安全設(shè)置。打開Framework   Configuration工具,選擇運(yùn)行庫安全策略,然后選擇調(diào)整安全區(qū)域。對(duì)于受信任站點(diǎn)中指定的所有站點(diǎn),將信任級(jí)別調(diào)整到完全信任。作為選擇,你也可以用Framework   Configuaration工具來修改安全策略,使它信任你的應(yīng)用程序的個(gè)別程序集。右擊運(yùn)行庫安全策略,選擇提高程序集的信任級(jí)別。  
   
  另一個(gè)可選擇的方法就是用代碼組,用Framework   Configuration工具來幫助你提高應(yīng)用系統(tǒng)的程序集的安全設(shè)置。你需要讓所有運(yùn)用你的應(yīng)用程序的桌面用戶做這種改變。為了幫助完成該任務(wù),F(xiàn)ramework   Configuration工具可以創(chuàng)建一個(gè)包含安全策略的Microsoft   Installer   (MSI)部署包。MSI安裝了應(yīng)用程序加載器來分布你的應(yīng)用程序需要的安全策略和加載器裝配。右擊運(yùn)行庫安全策略,選擇創(chuàng)建部署包。  
   
  在網(wǎng)絡(luò)運(yùn)行中,自動(dòng)更新是依靠IE的緩存機(jī)制來完成的。即當(dāng)您需要下載并運(yùn)行一個(gè)應(yīng)用程序時(shí),IE將向Web服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,該請(qǐng)求將獲取服務(wù)器上該程序的最新更新日期,如果該日期大于本地緩存的程序的日期或者本地緩存中不存在該程序,則從服務(wù)器上下載,否則直接使用本地緩存的程序。因此對(duì)于.net本身所具有的版本機(jī)制而言,不能作為版本更新的依據(jù),只有在某個(gè)程序集文件引用另外一個(gè)程序集時(shí),才會(huì)由.net運(yùn)行時(shí)依據(jù)自身的版本機(jī)制判斷版本號(hào)。  
   
  注意事項(xiàng):  
   
  ¨                   這種運(yùn)行方式通常需要在運(yùn)行前先設(shè)置用戶的安全策略。  
   
  ¨                   加載應(yīng)用組件時(shí),需要一個(gè)完整的url地址。  
   
  ¨                   如果應(yīng)用程序集中需要調(diào)用Web   Service,該Web   Service所在的服務(wù)器地址只能是最初下載程序集的服務(wù)器,可以構(gòu)造一個(gè)重定向來解決該問題。  
   
  ¨                   某些文件可能不能通過自動(dòng)更新機(jī)制來完成版本更新,如:.Config應(yīng)用程序的配置文件。  
   
  ¨                   如果某些應(yīng)用程序集文件的版本之間存在著某些關(guān)聯(lián)性,則在某些情況下(如:網(wǎng)絡(luò)突然中斷)可能會(huì)出
三、創(chuàng)建程序  
  客戶端應(yīng)用程序的執(zhí)行步驟:  
  1、         登錄系統(tǒng)。通過輸入用戶名和密碼或其他任何方式進(jìn)行系統(tǒng)登錄,通常需要一個(gè)登錄窗體。(該步操作需要客戶端應(yīng)用程序在線執(zhí)行,因此可以考慮在窗體上提供一個(gè)離線工作的按鈕,然后直接使用上次在線登錄時(shí)服務(wù)器傳遞的配置文件副本。這樣做會(huì)引發(fā)一些安全性問題和客戶端數(shù)據(jù)和服務(wù)器數(shù)據(jù)同步的問題。)  
   
  2、         由應(yīng)用服務(wù)器驗(yàn)證通過以后,根據(jù)系統(tǒng)設(shè)定的用戶權(quán)限獲取用戶可以加載的應(yīng)用組件及其相應(yīng)的配置信息,同時(shí)從數(shù)據(jù)庫中獲取用戶的個(gè)性化配置信息,將這些配置信息組合成一個(gè)XML配置文件流傳遞給客戶端應(yīng)用程序。該步操作通常由一個(gè)Web服務(wù)調(diào)用來執(zhí)行。  
   
  3、         客戶端程序解析該配置文件流,根據(jù)個(gè)性化配置信息設(shè)置主窗體樣式,根據(jù)應(yīng)用組件配置信息加載相應(yīng)的程序集文件。保存該配置文件以備離線工作時(shí)使用。  
   
  4、         (本地運(yùn)行方式)啟動(dòng)后臺(tái)更新線程,該線程定時(shí)搜索更新服務(wù)器上是否有最新版本的程序,如果有則自動(dòng)下載,并提示用戶更新程序。  
   
  5、         用戶通過點(diǎn)擊相應(yīng)的應(yīng)用組件的按鈕或菜單,在客戶端主窗體中將顯示應(yīng)用組件自身攜帶的用戶界面。  
   
                客戶端應(yīng)用程序基本包含了登錄窗體、主窗體和應(yīng)用組件加載器。加載器內(nèi)有一個(gè)應(yīng)用組件集合類,同時(shí)還提供一些方法用于主程序和應(yīng)用組件之間以及不同應(yīng)用組件之間的通訊,某些應(yīng)用組件是作為公共組件為其他應(yīng)用提供數(shù)據(jù),因此應(yīng)該通過統(tǒng)一的方法來獲取數(shù)據(jù)。  
   
  注意事項(xiàng)和建議:  
  1、對(duì)于網(wǎng)絡(luò)運(yùn)行方式,程序集在動(dòng)態(tài)加載的過程從服務(wù)器被下載到本地緩存中,而本地運(yùn)行方式的下載過程由更新組件執(zhí)行,加載過程則客戶端主窗體執(zhí)行。  
   
  在.net中動(dòng)態(tài)加載程序集的方法:  
   
                using   System.Reflection;  
   
                //網(wǎng)絡(luò)運(yùn)行方式,加載的程序集路徑為服務(wù)器上的url地址  
   
  assemblyFileName   =   "http://SmartClient/AppComponent1.dll";  
   
                //本地運(yùn)行方式,加載的程序集路徑為本地的目錄路徑  
   
                assemblyFileName   =   @"c:\SmartClient\AppComponent1.dll";  
   
                Assembly   asm   =   Assembly.LoadFrom(assemblyFileName);  
   
  2、客戶端應(yīng)用程序的主窗體作為應(yīng)用組件的容器,可以通過兩種方法來顯示應(yīng)用組件的用戶界面:  
   
  第一種方式是將客戶端應(yīng)用程序設(shè)計(jì)為多文檔界面(MDI)應(yīng)用程序,每個(gè)應(yīng)用組件都包含有各自的啟動(dòng)主窗體,客戶端應(yīng)用程序執(zhí)行每個(gè)應(yīng)用組件時(shí),將構(gòu)造并顯示該組件的啟動(dòng)窗體類型。MDI   應(yīng)用程序中常有包含子菜單的“窗口”菜單項(xiàng),用于在主窗口或應(yīng)用之間進(jìn)行切換。  
   
  另一種方式是在客戶端應(yīng)用程序的主窗體界面中預(yù)留一塊應(yīng)用界面區(qū)域,而每個(gè)應(yīng)用組件作為一個(gè)用戶控件在執(zhí)行時(shí)被添加到應(yīng)用界面區(qū)域的控件數(shù)組中。應(yīng)用界面區(qū)域通常是一個(gè)面板(Pane)控件,通過更改用戶控件的Z順序在各個(gè)應(yīng)用之間進(jìn)行切換(Control.   BringToFront())。  
   
  3、在客戶端應(yīng)用程序根據(jù)配置信息加載相應(yīng)的應(yīng)用組件時(shí),同時(shí)需要在客戶端主窗體的工具欄或菜單上創(chuàng)建對(duì)應(yīng)的按鈕和菜單項(xiàng),并添加事件以便于用戶操作??蛻舳藨?yīng)用程序和應(yīng)用組件之間應(yīng)盡量保持獨(dú)立性,減少關(guān)聯(lián),以體現(xiàn)客戶端應(yīng)用程序結(jié)構(gòu)清晰和簡單??梢酝ㄟ^.net中的回調(diào)(事件委托)等方法實(shí)現(xiàn)這一點(diǎn)。  
   
                使用此方法時(shí)需要注意,如果您構(gòu)造的類型實(shí)例包含一個(gè)帶參數(shù)的構(gòu)造函數(shù),則這些參數(shù)對(duì)象必須是可跨應(yīng)用程序域訪問的對(duì)象,即是可序列化的對(duì)象??梢酝ㄟ^繼承MarshalByRefObject對(duì)象或使用[Serializable]特性標(biāo)記類,同時(shí)設(shè)置遠(yuǎn)程對(duì)象的生存期策略。  
   
  示例:(省略)  
   
  四、發(fā)布程序  
  1、在發(fā)布和更新服務(wù)器上設(shè)置一個(gè)虛擬目錄(如:SmartClient)將應(yīng)用組件的所有文件放置在相應(yīng)的目錄下。  
   
                虛擬目錄的設(shè)置屬性中必須包括:讀取和目錄瀏覽權(quán)限,執(zhí)行許可為純腳本。  
   
  對(duì)于本地運(yùn)行方式,需要根據(jù)客戶端應(yīng)用程序的版本號(hào)設(shè)置多個(gè)目錄,每個(gè)目錄存放不同版本的所有文件。(也可以在新版本目錄下只存放更新了的文件,但需要修改更新組件。當(dāng)用戶更新版本時(shí),必須下載大于當(dāng)前版本的所有新版本目錄下的文件,以防止某些情況下會(huì)出現(xiàn)某個(gè)版本的文件被遺漏的問題)。  
   
                在本地運(yùn)行方式中,還需要在根目錄下維護(hù)一個(gè)更新版本清單文件,因?yàn)樗试S用戶以老版本客戶端應(yīng)用程序登錄。  
   
  2、發(fā)布一個(gè)Web   Service。該Web服務(wù)主要完成以下任務(wù):  
   
  ¨                   執(zhí)行客戶端用戶的身份驗(yàn)證  
   
  ¨                   從整個(gè)應(yīng)用系統(tǒng)的安全模塊中獲取該用戶允許執(zhí)行的應(yīng)用組件的清單,包含應(yīng)用組件的位置、文件名稱和應(yīng)用組件本身所需的配置信息。(在本地運(yùn)行方式下,該清單還和版本有關(guān))  
   
  ¨                   從數(shù)據(jù)庫中獲取該用戶的個(gè)性化配置信息,和上一步獲取的信息合并為一個(gè)XML文件流。  
   
  ¨                   將該配置文件流作為返回參數(shù)返回給客戶端應(yīng)用程序。  
   
  3、將客戶端應(yīng)用程序放置在虛擬根目錄下作為應(yīng)用組件程序集的加載器,同時(shí)在企業(yè)內(nèi)部網(wǎng)站上增加一個(gè)指向客戶端應(yīng)用程序的鏈接。對(duì)于網(wǎng)絡(luò)運(yùn)行方式,還將提供一個(gè)安全策略部署包(MSI)文件的鏈接。  
   
                用戶第一次運(yùn)行時(shí)的執(zhí)行步驟  
   
                網(wǎng)絡(luò)運(yùn)行方式:  
   
  ¨                   下載并安裝安全策略部署包  
   
  ¨                   通過點(diǎn)擊客戶端應(yīng)用程序的鏈接,下載并執(zhí)行客戶端應(yīng)用程序  
   
  ¨                   將該鏈接添加到收藏夾中或建立桌面快捷方式,以便于運(yùn)行  
   
  本地運(yùn)行方式:  
   
  ¨                   不直接點(diǎn)擊客戶端應(yīng)用程序的鏈接,將此鏈接另存到用戶選擇的目錄下  
   
  ¨                   在資源管理器中執(zhí)行客戶端應(yīng)用程序  
   
  ¨                   在桌面上建立可執(zhí)行文件的快捷方式,以便于運(yùn)行  
   
  五、更新程序  
                網(wǎng)絡(luò)運(yùn)行方式的更新步驟較為簡單,只須將更新了的文件直接覆蓋老文件即可。其缺點(diǎn)是某些程序集附帶的引用文件不能自動(dòng)下載新版本,只有清空客戶端的IE緩存后才能實(shí)現(xiàn)更新。  
   
                本地運(yùn)行方式的更新步驟如下:  
   
  ¨                   在服務(wù)器虛擬根目錄下新建一個(gè)以新版本號(hào)命名的目錄,增量更新只需將更新了的文件復(fù)制到該目錄下,否則需要將所有文件都復(fù)制到目錄。  
   
  ¨                   修改保存所有版本清單的文件,并指明當(dāng)前活動(dòng)的最新版本號(hào),用于和客戶端進(jìn)行版本比較。  
   
  六、擴(kuò)展應(yīng)用組件  
                為了實(shí)現(xiàn)企業(yè)應(yīng)用系統(tǒng)的可擴(kuò)展性,通過接口定義,可以使應(yīng)用開發(fā)商通過實(shí)現(xiàn)這些接口將自己的應(yīng)用組件方便的添加到客戶端應(yīng)用程序中。以下介紹一些接口中主要包含的方法和屬性。  
   
  1、         應(yīng)用組件名稱屬性:用于標(biāo)明該應(yīng)用組件功能的注釋性文本。  
   
  2、         應(yīng)用組件在客戶端應(yīng)用程序上的各個(gè)界面元素屬性:指客戶端應(yīng)用程序上的工具欄、菜單欄、下拉菜單項(xiàng)和列表框等用于標(biāo)志該應(yīng)用組件的控件上,需要應(yīng)用組件提供的文本、圖片、圖標(biāo)、菜單、事件處理方法等。  
   
  3、         初始化方法:在客戶端應(yīng)用程序加載應(yīng)用組件時(shí),首先執(zhí)行的方法。在加載應(yīng)用組件時(shí),對(duì)于由服務(wù)器傳來的配置文件中包含的各個(gè)應(yīng)用組件自身的配置信息,客戶端應(yīng)用程序并不解析,而是將該配置信息在初始化應(yīng)用組件時(shí)作為參數(shù)傳遞給應(yīng)用組件,增加了靈活性。  
   
  4、         獲取應(yīng)用組件加載器方法:獲取應(yīng)用組件加載器后,可以通過其中包含的公共方法獲取一些應(yīng)用所需的共享數(shù)據(jù)。  
   
  5、         獲取應(yīng)用組件啟動(dòng)控件的方法:啟動(dòng)控件可以是窗體或用戶控件。  
   
  6、         關(guān)閉應(yīng)用組件的方法(可選):當(dāng)客戶端應(yīng)用程序被關(guān)閉時(shí),執(zhí)行該方法。應(yīng)用組件本身根據(jù)自身情況決定是否可以立即關(guān)閉,同時(shí)立即釋放組件所占用的系統(tǒng)資源。對(duì)于MDI應(yīng)用程序,可以在啟動(dòng)窗體的關(guān)閉事件中處理而不需要該方法。  
   
  客戶端應(yīng)用程序內(nèi)的應(yīng)用組件加載器可以通過枚舉組件程序集內(nèi)的類型來判斷該組件是否符合借口定義。同時(shí)可以將多個(gè)應(yīng)用組件打包在一個(gè)應(yīng)用程序集中。此過程非常耗時(shí)。  
   
  示例:(省略)  
   
  小結(jié)  
                上述僅僅是對(duì)創(chuàng)建智能客戶端應(yīng)用程序作了簡單的描述和示范,并對(duì)其中可能遇到的問題給與了必要的解釋,希望能對(duì)您創(chuàng)建更為強(qiáng)大、靈活、便捷的應(yīng)用程序提供幫助。   
   
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Fly Higher
Ajax的競爭對(duì)手
智能客戶端體系結(jié)構(gòu)與設(shè)計(jì)指南第3章—建立連接
智能客戶端SmartClient
用于構(gòu)建集成式桌面應(yīng)用程序的新指南和新工具
WPF開發(fā)系列一:WPF應(yīng)用程序生命周期
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服