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

打開APP
userphoto
未登錄

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

開通VIP
智能客戶端體系結(jié)構(gòu)與設(shè)計(jì)指南
智能客戶端體系結(jié)構(gòu)與設(shè)計(jì)指南
David Hill, Brenton Webster, Edward A. Jezierski, Srinath Vasireddy and Mohammad Al-Sabt, Microsoft Corporation; Blaine Wastell, Ascentium Corporation; Jonathan Rasmusson and Paul Gale, ThoughtWorks; and Paul Slater, Wadeware LLC
相關(guān)鏈接
Microsoft? patterns & practices 庫 (http://www.microsoft.com/resources/practices/default.mspx)
.NET 的應(yīng)用程序體系結(jié)構(gòu):設(shè)計(jì)應(yīng)用程序和服務(wù) (http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp)
摘要:本章介紹如何在智能客戶端和 Windows 平臺(tái)中最好地使用 .NET Framework 提供的部署功能,并且提供有關(guān)如何取舍可用的部署和更新機(jī)制的指導(dǎo)。
本頁內(nèi)容
部署 .NET Framework
預(yù)先安裝 .NET Framework
部署智能客戶端應(yīng)用程序
部署智能客戶端應(yīng)用程序
選擇正確的更新方法
智能客戶端應(yīng)用程序在客戶端計(jì)算機(jī)上執(zhí)行本地處理,因此需要將它們部署到這些計(jì)算機(jī)上。過去,在客戶端計(jì)算機(jī)上長期部署、更新、維護(hù)和卸載應(yīng)用程序非常困難而且存在很多問題。由于 COM 的緣故,幾個(gè)問題使得向客戶端計(jì)算機(jī)部署應(yīng)用程序變得非常困難,包括:
?
與注冊(cè)表緊密耦合的應(yīng)用程序。安裝 COM 應(yīng)用程序要求在注冊(cè)表中注冊(cè)類和類型庫。
?
非獨(dú)立的應(yīng)用程序。除了必須在注冊(cè)表中注冊(cè)類和類型以外,應(yīng)用程序通常還包括位于硬盤上的共享文件以及注冊(cè)表中包含的配置設(shè)置。應(yīng)用程序不是獨(dú)立的;相反,它的構(gòu)成部分分布在計(jì)算機(jī)中的不同區(qū)域。
?
無法并列部署的組件。無法將同一 DLL 的兩個(gè)不同版本部署到同一目錄中。
這些問題構(gòu)成了有效部署和維護(hù)客戶端應(yīng)用程序的巨大障礙。
Microsoft ? .NET Framework 具有一些能夠簡化部署 .NET Framework 應(yīng)用程序的過程的功能。這些功能包括:
?
自我描述的程序集。.NET Framework 程序集包含元數(shù)據(jù),以描述引用的所有程序集的版本信息、類型、資源和詳細(xì)信息(以及其他內(nèi)容)。這意味著它們不依賴于注冊(cè)表。
?
版本控制和并列支持。.NET Framework 對(duì)于版本控制具有大量的支持,允許您安裝多個(gè)版本的應(yīng)用程序和多個(gè)版本的 .NET Framework,以便它們能夠并列運(yùn)行。
?
相互隔離的應(yīng)用程序??梢詫?.NET Framework 程序集部署到應(yīng)用程序目錄,以供該特定應(yīng)用程序使用,并且默認(rèn)情況下將其與其他應(yīng)用程序單獨(dú)保存并隔離。這意味著不需要將程序集部署到 Windows 目錄或者將其顯式注冊(cè)到注冊(cè)表中,從而降低了在安裝其他應(yīng)用程序時(shí)改寫或刪除這些程序集的可能性。
?
全局程序集緩存。如果您希望在同一臺(tái)計(jì)算機(jī)上的不同應(yīng)用程序之間共享代碼,則可以將組件部署到全局程序集緩存。全局程序集緩存允許同一程序集的不同版本共存。在引用全局程序集緩存中的程序集時(shí),必須指定程序集的完全限定名,包括公鑰標(biāo)記和版本號(hào)。這有助于防止無意中使用組件的不同版本。
?
針對(duì)具有強(qiáng)名稱的程序集的編譯時(shí)程序集的默認(rèn)運(yùn)行時(shí)綁定。默認(rèn)情況下,如果程序集具有強(qiáng)名稱,則 .NET Framework 會(huì)將其綁定到其從屬程序集的確切版本。這會(huì)降低應(yīng)用程序脆弱性,因?yàn)?.NET Framework 加載的是構(gòu)建和測試該應(yīng)用程序時(shí)的確切的程序集版本。如果需要,可以顯式覆蓋該行為。
總而言之,上述更改有助于解決許多過去曾經(jīng)困擾胖客戶端應(yīng)用程序的部署和維護(hù)的基礎(chǔ)問題。有關(guān) .NET Framework 如何簡化部署的詳細(xì)信息,請(qǐng)參閱“Simplifying Deployment and Solving DLL Hell with the .NET Framework”,網(wǎng)址為:http://msdn.microsoft.com/library/en-us/dndotnet/html/dplywithnet.asp
本章介紹用于部署 .NET Framework 本身的選擇,然后分析如何部署基于 .NET Framework 的智能客戶端應(yīng)用程序。有許多用于部署應(yīng)用程序的選擇,本章討論了每個(gè)選擇,并隨后討論了如何選擇最適合您的環(huán)境的方法。最后,本章比較詳細(xì)地分析了用于部署應(yīng)用程序更新的選擇。
部署 .NET Framework
.NET 智能客戶端應(yīng)用程序依靠 .NET Framework 工作,因此要求在客戶端計(jì)算機(jī)上部署 .NET Framework。.NET Framework 是使用 .NET Framework Redistributable Package 部署的,后者可從 Microsoft MSDN? 或 Windows Update Web 站點(diǎn)獲得。
您還可以從產(chǎn)品 CD 或 DVD 獲得該 Redistributable Package。該軟件包在 .NET Framework SDK 和 Microsoft Visual Studio? .NET 2003 DVD 上提供。
.NET Framework Redistributable Package 實(shí)際上是一個(gè) Windows 安裝程序軟件包,它被包裝到一個(gè)名為 Dotnetfx.exe 的自解壓縮可執(zhí)行文件中。Dotnetfx.exe 可執(zhí)行文件啟動(dòng) Install.exe,后者執(zhí)行平臺(tái)檢查,根據(jù)需要安裝 Windows 安裝程序 2.0 版,然后啟動(dòng) Windows 安裝程序軟件包(.msi 文件)。
有關(guān)使用 Dotnetfx.exe 的詳細(xì)信息,請(qǐng)參閱“.NET Framework Redistributable Package 1.1 Technical Reference”,網(wǎng)址為:http://msdn.microsoft.com/library/en-us/dnnetdep/html/dotnetfxref1_1.asp。
返回頁首
預(yù)先安裝 .NET Framework
如今,許多企業(yè)都選擇將 .NET Framework 作為其標(biāo)準(zhǔn)操作環(huán)境的一部分進(jìn)行部署。您可以用兩種方法在整個(gè)企業(yè)中部署 .NET Framework:
?
使用將軟件“推”到客戶端計(jì)算機(jī)的技術(shù),如 Microsoft Active Directory? 目錄服務(wù)的“組策略”功能或 Microsoft Systems Management Server (SMS)。使用“組策略”軟件部署通過網(wǎng)絡(luò)安裝軟件包,您可以確保用提升的特權(quán)安裝該軟件包。同樣,使用企業(yè)“推”技術(shù)(如 SMS),您可以用必需的權(quán)限安裝 .NET Framework。要使用“組策略”或 SMS 安裝 .NET Framework,首先需要從 dotnetfx.exe 中解壓縮 Windows 安裝程序文件。有關(guān)如何完成該任務(wù)的詳細(xì)信息,請(qǐng)參閱“Redistributing the .NET Framework”,網(wǎng)址為:http://msdn.microsoft.com/library/en-us/dnnetdep/html/redistdeploy.asp。
?
要求最終用戶自己部署 .NET Framework,方法是使用 Windows Update,或者從網(wǎng)絡(luò)共享、內(nèi)部 Web 站點(diǎn)或 Microsoft Web 站點(diǎn)下載 .NET Framework 。最終用戶將需要在其計(jì)算機(jī)上具有管理特權(quán)才能部署 .NET Framework,這是因?yàn)?.NET Framework Redistributable Package 安裝程序要求有管理特權(quán)才能安裝。
隨應(yīng)用程序一起安裝 .NET Framework
如果您無法確定哪些計(jì)算機(jī)預(yù)先安裝了 .NET Framework,您可以選擇僅在需要 .NET Framework 時(shí)(換句話說,就是在安裝 .NET Framework 應(yīng)用程序時(shí))才安裝它。當(dāng)您不知道您將向其進(jìn)行部署的計(jì)算機(jī)的確切軟件配置(因此不知道是否預(yù)先安裝了 .NET Framework)時(shí),該方法尤其有用。例如,如果您是獨(dú)立軟件供應(yīng)商 (ISV),并且開發(fā)和打包智能客戶端應(yīng)用程序以便銷售給形形色色的客戶,則您可能不知道您的客戶的計(jì)算機(jī)是否安裝了 .NET Framework。
要確保 .NET Framework 隨您的應(yīng)用程序一起安裝,可以使用 setup.exe 引導(dǎo)程序示例。該示例會(huì)檢查是否已經(jīng)安裝了 .NET Framework,如果尚未安裝,則會(huì)在安裝應(yīng)用程序之前安裝 .NET Framework。
有關(guān)使用 setup.exe 引導(dǎo)程序示例的詳細(xì)信息,請(qǐng)參閱 Deploying .NET Framework-based Applications 的第 3 章,網(wǎng)址為: http://www.microsoft.com/downloads/details.aspx?FamilyId=5B7C6E2D-D03F-4B19-9025-6B87E6AE0DA6&displaylang=en 。
返回頁首
部署智能客戶端應(yīng)用程序
當(dāng)您設(shè)計(jì)智能客戶端應(yīng)用程序時(shí),應(yīng)該考慮將如何部署這些應(yīng)用程序。只要有可能,您都應(yīng)該努力將任何安裝的系統(tǒng)影響降至最低限度。這樣做使您可以更緊密地跟蹤對(duì)應(yīng)用程序進(jìn)行的任何更改,并且減輕更新和卸載應(yīng)用程序的問題。但是,有時(shí)您將需要執(zhí)行更為復(fù)雜的安裝,例如,當(dāng)您重用非托管代碼組件時(shí),或者當(dāng)您需要在注冊(cè)表中安全地存儲(chǔ)敏感數(shù)據(jù)時(shí)。
當(dāng)您部署智能客戶端應(yīng)用程序時(shí),可以使用多種選擇。這些選擇包括:
?
無接觸部署。使用該方法時(shí),您可以將文件復(fù)制到 Web 服務(wù)器,然后當(dāng)用戶單擊相應(yīng)的鏈接時(shí),.NET Framework 會(huì)自動(dòng)將應(yīng)用程序及其從屬程序集下載到客戶端。
?
帶有應(yīng)用程序更新存根的無接觸部署。使用該方法時(shí),您可以使用無接觸部署下載應(yīng)用程序存根,該存根隨后會(huì)將應(yīng)用程序的其余部分下載到本地硬盤。
?
從文件共享運(yùn)行代碼。使用該方法時(shí),您可以將文件復(fù)制到文件共享,然后從該共享中運(yùn)行應(yīng)用程序。
?
Xcopy。使用該方法時(shí),您可以將文件直接復(fù)制到客戶端。.NET Framework 允許應(yīng)用程序及其所有從屬程序集位于單個(gè)目錄結(jié)構(gòu)中,因此您無須在客戶端上注冊(cè)任何組件。
?
Windows 安裝程序軟件包。使用該方法時(shí),您可以將應(yīng)用程序的文件打包到 Windows 安裝程序軟件包中,然后將該軟件包安裝到客戶端上。
每種方法都有其自己的優(yōu)點(diǎn)和缺點(diǎn)。要幫助確定最適合您的環(huán)境的部署方法,您應(yīng)該更加詳細(xì)地分析每種方法。
無接觸部署
無接觸部署使用戶可以通過使用指向應(yīng)用程序的 URL 鏈接來訪問您的位于 Web 服務(wù)器上的應(yīng)用程序。要使用無接觸部署來部署應(yīng)用程序,您只需要將適當(dāng)?shù)奈募?fù)制到 Web 服務(wù)器。當(dāng)用戶通過使用 URL 鏈接瀏覽到應(yīng)用程序的位置時(shí),Microsoft Internet Explorer 將下載并運(yùn)行該應(yīng)用程序。應(yīng)用程序及其從屬程序集將被使用 HTTP 下載到客戶端,并且被存儲(chǔ)在名為程序集下載緩存的特殊位置。當(dāng) .NET Framework 確定是否需要下載 Web 服務(wù)器上的程序集時(shí),將只檢查該文件上的日期-時(shí)間戳,而不會(huì)檢查程序集版本號(hào)。如果服務(wù)器上的程序集所具有的日期-時(shí)間戳不比客戶端上的晚,則不會(huì)下載這些程序集。
如果您使用無接觸部署來部署您的智能客戶端應(yīng)用程序,則需要向用戶提供指向 Web 服務(wù)器上的應(yīng)用程序位置的 URL。使用該方法時(shí),客戶端計(jì)算機(jī)上不需要任何安裝程序 — 所有代碼都將根據(jù)需要下載。每當(dāng) Web 服務(wù)器上發(fā)生更改時(shí),都會(huì)自動(dòng)更新您的應(yīng)用程序。如果文件已經(jīng)更改,則會(huì)根據(jù)需要下載較新的版本,就像使用普通的 Web 瀏覽一樣。
無接觸部署依靠 .NET Framework 的能力與 Internet Explorer 5.01 或更高版本交互,以檢查是否有所請(qǐng)求的 .NET 程序集。在請(qǐng)求期間,會(huì)將可執(zhí)行文件下載到下載緩存中。然后,一個(gè)名為 IEExec 的進(jìn)程將在 .NET Framework 的代碼訪問安全基礎(chǔ)結(jié)構(gòu)提供的安全隔離環(huán)境中啟動(dòng)應(yīng)用程序。
注客戶端只有在同時(shí)安裝了 .NET Framework 以及 Internet Explorer 版本 5.01 或更高版本時(shí),才會(huì)嘗試運(yùn)行該應(yīng)用程序。
如果您決定利用無接觸部署來部署使用應(yīng)用程序配置文件的應(yīng)用程序,則可能需要配置 Web 服務(wù)器目錄以便允許下載該應(yīng)用程序的配置文件,因?yàn)槟J(rèn)情況下未啟用該功能。請(qǐng)確保僅啟用從您的應(yīng)用程序所在的目錄下載配置文件的功能;否則,您可能啟用下載專用配置文件的功能并且引入安全風(fēng)險(xiǎn)。
注在使用無接觸部署時(shí),實(shí)際上會(huì)下載配置文件兩次:第一次是在檢查有無綁定信息時(shí)(例如,為了控制應(yīng)用程序使用的組件的確切版本),第二次是在查找用戶特定的配置信息時(shí)。
您可以從已經(jīng)部署的應(yīng)用程序內(nèi)使用無接觸部署,通過 Assembly.LoadFrom() 方法下載并運(yùn)行代碼。該技術(shù)可用于下載頻繁更改的代碼(如頻繁更改的業(yè)務(wù)規(guī)則),或者提供其他某種功能的按需安裝。
您可以通過無接觸部署運(yùn)行應(yīng)用程序的本地化版本??蛻舳擞?jì)算機(jī)的當(dāng)前區(qū)域性用于自動(dòng)下載所需的適當(dāng)資源程序集,以便提供應(yīng)用程序的本地化版本。
您可以使用 Web 服務(wù)器提供的安全性機(jī)制來確保無接觸部署應(yīng)用程序的安全。例如,要將對(duì)應(yīng)用程序的訪問權(quán)限制到 Intranet 上的授權(quán)用戶,您可以在 Web 服務(wù)器中的應(yīng)用程序目錄上啟用 Windows 集成安全性。要允許所有用戶訪問該應(yīng)用程序,您可以啟用對(duì)應(yīng)用程序的目錄的匿名訪問。
注如果您的 Web 服務(wù)器不允許匿名訪問或者使用 Windows 集成安全性對(duì)客戶端進(jìn)行身份驗(yàn)證,則您的應(yīng)用程序可能無法下載配置文件。
無接觸部署的局限性
對(duì)于部署簡單的應(yīng)用程序或者部署更為復(fù)雜的應(yīng)用程序的組成部分而言,無接觸部署可能很有用。但是,對(duì)于更為復(fù)雜的智能客戶端應(yīng)用程序的完整安裝而言,它并不是適當(dāng)?shù)牟渴鸱椒ǎ蛴幸韵聨c(diǎn):
?
受限制的默認(rèn)安全設(shè)置
?
不可靠的脫機(jī)功能
?
沒有事務(wù)性安裝
注.NET Framework 版本 2.0 中的 ClickOnce 技術(shù)將無需在安裝和運(yùn)行應(yīng)用程序之前手動(dòng)對(duì)客戶端進(jìn)行安全策略更改。ClickOnce 將提供一種可配置的機(jī)制,以便在從 Web 服務(wù)器首次安裝應(yīng)用程序時(shí),自動(dòng)進(jìn)行安全策略更改。ClickOnce 還將向智能客戶端應(yīng)用程序提供可靠的脫機(jī)功能,并且將使它們可以與 Windows 外殼程序完全集成。
?
本節(jié)詳細(xì)分析無接觸部署的限制。
受限制的默認(rèn)安全設(shè)置
代碼訪問安全根據(jù)應(yīng)用程序提供的證據(jù)向應(yīng)用程序授權(quán)。默認(rèn)情況下,使用應(yīng)用程序的位置(用于啟動(dòng)它的 URL)來確定授予它的權(quán)限。除非更改了客戶端計(jì)算機(jī)上的本地安全策略,否則只在某種程度上信任無接觸部署應(yīng)用程序,這意味著只會(huì)將有限數(shù)量的權(quán)限授予它們。
默認(rèn)情況下,使用無接觸部署進(jìn)行部署的智能客戶端應(yīng)用程序?qū)o法執(zhí)行下列操作:
?
向硬盤寫(獨(dú)立存儲(chǔ)除外)
?
將程序集部署到全局程序集緩存
?
部署或使用非托管代碼
?
部署要求注冊(cè)或者進(jìn)行其他注冊(cè)表更改的組件
?
與 Windows 外殼程序(具體說來,就是 Start 菜單上的安裝圖標(biāo)以及 Control Panel 中的 Add or Remove Programs 項(xiàng)目)集成
?
訪問數(shù)據(jù)庫
?
與任何其他客戶端應(yīng)用程序(如 Microsoft Office 應(yīng)用程序)交互
?
訪問 Web 服務(wù)或其他位于網(wǎng)絡(luò)上但不位于部署應(yīng)用程序的同一服務(wù)器上的資源
?
執(zhí)行在與部署位置相關(guān)聯(lián)的區(qū)域中定義的安全操作以外的其他安全操作
如果您的應(yīng)用程序要求比默認(rèn)權(quán)限集更多的權(quán)限,并且您希望使用無接觸部署,則您將必須修改客戶端上的安全策略,以便授予應(yīng)用程序正常工作所需的權(quán)限。在部署您的應(yīng)用程序之前,需要將此類安全策略更改傳播到客戶端計(jì)算機(jī)(例如,使用“組策略”、Windows 安裝程序軟件包或批處理文件)。這些要求減少了無接觸部署方法的一些好處。有關(guān)部署安全策略的詳細(xì)信息,請(qǐng)參閱“.NET Framework Enterprise Security Policy Administration and Deployment”,網(wǎng)址為:http://msdn.microsoft.com/library/en-us/dnnetsec/html/entsecpoladmin.asp
當(dāng)您設(shè)計(jì)應(yīng)用程序時(shí),應(yīng)該確定您是否能夠滿足您的智能客戶端應(yīng)用程序的設(shè)計(jì)規(guī)范,并且遵守?zé)o接觸部署應(yīng)用程序的不完全信任要求。通常,無接觸部署以及從文件共享運(yùn)行代碼提供了易于部署的解決方案,但是可能在某種程度上限制應(yīng)用程序的功能,以至于它們對(duì)于許多智能客戶端應(yīng)用程序而言并不實(shí)用。不過,如果您的應(yīng)用程序不要求任何附加權(quán)限,則無接觸部署可能是應(yīng)用程序的理想部署機(jī)制。
有關(guān)完全受信任的應(yīng)用程序和不完全受信任的應(yīng)用程序的詳細(xì)信息,請(qǐng)參閱第 5 章:安全性考慮事項(xiàng)。
不可靠的脫機(jī)功能
使用無接觸部署來部署智能客戶端應(yīng)用程序的另一個(gè)問題是它們不能可靠地脫機(jī)工作。這一問題是由許多因素造成的:
?
程序集的延遲下載。程序集被按需下載并存儲(chǔ)在程序集下載緩存(它被作為 Internet Explorer 緩存的一部分進(jìn)行管理)中。在某些情況下,當(dāng)您聯(lián)機(jī)運(yùn)行應(yīng)用程序時(shí),您可能沒有下載該應(yīng)用程序的所有部分,這將影響應(yīng)用程序在脫機(jī)時(shí)完全發(fā)揮作用的能力。
?
程序集可能被刪除。因?yàn)槌绦蚣v留在由 Internet Explorer 緩存管理的區(qū)域中,所以如果該緩存由于某種原因而被清除,則您的應(yīng)用程序文件將被刪除。
?
應(yīng)用程序依賴于 Internet Explorer 脫機(jī)設(shè)置。在嘗試脫機(jī)運(yùn)行應(yīng)用程序時(shí),您必須將 Internet Explorer 設(shè)置為在脫機(jī)模式下運(yùn)行,即使您的應(yīng)用程序不是在 Internet Explorer 內(nèi)部運(yùn)行。而且,如果您確實(shí)具有連接,但 Internet Explorer 被無意中設(shè)置為脫機(jī)模式,則不會(huì)對(duì)服務(wù)器進(jìn)行更新檢查。
沒有事務(wù)性安裝
在使用無接觸部署時(shí),根據(jù)需要將程序集下載到隨時(shí)可能被清除的緩存中。因此,無法在任何時(shí)候都確保本地硬盤上裝有所有必要的代碼。對(duì)于許多組織而言,這種不確定性可能是業(yè)務(wù)線應(yīng)用程序所不能接受的。
帶有應(yīng)用程序更新存根的無接觸部署
使用無接觸部署的主要問題之一是:默認(rèn)情況下,應(yīng)用程序從程序集下載緩存中運(yùn)行,并且只受到不完全信任,除非修改了本地安全策略。這可能限制智能客戶端應(yīng)用程序的功能,包括它的在脫機(jī)環(huán)境下可靠工作的能力。一種避免該問題的方法是最初使用無接觸部署來部署應(yīng)用程序存根,后者接著自動(dòng)將該應(yīng)用程序的其余部分下載并安裝到本地硬盤上。該存根將應(yīng)用程序部署到硬盤上的指定位置,如“C:\Program Files”,因此不會(huì)受到 Internet Explorer 緩存的限制。當(dāng)該應(yīng)用程序運(yùn)行時(shí),因?yàn)樗菑谋镜赜脖P運(yùn)行的,所以它將被授予完全信任權(quán)限,并且在工作時(shí)不會(huì)受到與不完全信任應(yīng)用程序相關(guān)聯(lián)的限制。應(yīng)用程序更新存根還可用于確保在服務(wù)器上發(fā)生更改時(shí)可靠而自動(dòng)地更新該應(yīng)用程序。
如果您使用該方法部署您的應(yīng)用程序,則需要確保修改客戶端計(jì)算機(jī)的 .NET Framework 安全策略,使應(yīng)用程序存根本身可以用足夠的權(quán)限運(yùn)行,以便將應(yīng)用程序構(gòu)件下載并存儲(chǔ)到本地硬盤上。
設(shè)計(jì)應(yīng)用程序更新存根可能非常復(fù)雜。為了幫助您,Microsoft 已經(jīng)創(chuàng)建了 Updater Application Block,您可以將其用作設(shè)計(jì)您自己的自動(dòng)更新解決方案的基礎(chǔ)。設(shè)計(jì) Updater Application Block 的目的是:
?
為 .NET Framework 應(yīng)用程序?qū)崿F(xiàn)基于“拉”機(jī)制的更新解決方案。
?
使用加密驗(yàn)證技術(shù),在使用應(yīng)用程序更新之前驗(yàn)證它們的真實(shí)性。
?
在沒有用戶干預(yù)的情況下執(zhí)行后部署配置任務(wù)。
?
幫助您編寫能夠自動(dòng)將其本身更新為可用的最新版本的應(yīng)用程序。
圖 7.1 顯示了 Updater Application Block 的體系結(jié)構(gòu)。
圖 7.1 Updater Application Block 體系結(jié)構(gòu)
有關(guān) Updater Application Block 的詳細(xì)信息,請(qǐng)參閱“Updater Application Block for .NET”,網(wǎng)址為:http://msdn.microsoft.com/library/en-us/dnbda/html/updater.asp。
帶有應(yīng)用程序更新存根的無接觸部署支持應(yīng)用程序的事務(wù)性安裝。Updater Application Block 可幫助確保應(yīng)用程序成功地完整安裝。要執(zhí)行事務(wù)性安裝,您將需要包含相應(yīng)的代碼,以便除了執(zhí)行自動(dòng)更新以外,還檢查是否已經(jīng)在本地硬盤上安裝了所有代碼。這些代碼的形式可以是一個(gè)清單文件以及用于確定該清單中的每個(gè)文件都在本地硬盤上的代碼。
通過將無接觸部署與應(yīng)用程序更新存根結(jié)合起來,您可以得到許多好處,如簡化的部署和更新,以及在完全受信任的環(huán)境中運(yùn)行您的應(yīng)用程序的能力。上述好處使得這一混合式方法成為部署許多智能客戶端應(yīng)用程序的有用選擇。但是,它并非在所有情況下都是理想的選擇。您仍然需要向應(yīng)用程序存根授予足夠的權(quán)限,以使該存根能夠下載應(yīng)用程序的其余部分。而且,使用該方法安裝的應(yīng)用程序不提供 Windows 外殼程序集成(具體說來,就是與 Start 菜單或 Control Panel 中的 Add or Remove Programs 項(xiàng)目的集成),除非您將該功能構(gòu)建到應(yīng)用程序存根中。最后,部署和更新將僅發(fā)生在用戶的安全上下文中。如果您的應(yīng)用程序需要向注冊(cè)表寫入,或者需要向文件系統(tǒng)的某個(gè)您禁止用戶訪問的部分寫入,則這一限制可能導(dǎo)致問題。
從文件共享運(yùn)行代碼
從文件共享運(yùn)行代碼類似于無接觸部署,不同之處在于您向用戶提供文件共享而不是 URL,以便其部署和運(yùn)行應(yīng)用程序。從文件共享運(yùn)行的代碼按需下載,并且在適當(dāng)?shù)臅r(shí)候執(zhí)行。因?yàn)樵摯a是從網(wǎng)絡(luò)運(yùn)行的,所以它將作為不完全受信任的應(yīng)用程序運(yùn)行,而且,除非您更改了客戶端上的安全策略,否則它通常從本地 Intranet 運(yùn)行并且會(huì)獲得本地 Intranet 權(quán)限集。
從文件共享運(yùn)行代碼具有無接觸部署的許多優(yōu)點(diǎn)和缺點(diǎn),盡管代碼不像無接觸部署那樣緩存在客戶端上。因?yàn)閺奈募蚕磉\(yùn)行代碼具有一些安全限制,所以該方法通常并不適合于部署智能客戶端應(yīng)用程序。
注像無接觸部署一樣,您可以采用將從文件共享運(yùn)行代碼與自動(dòng)更新存根結(jié)合起來的混合式方法。有關(guān)詳細(xì)信息,請(qǐng)參閱本章前面的“帶有應(yīng)用程序更新存根的無接觸部署”。
Xcopy 部署
Xcopy 部署要求將應(yīng)用程序包含的所有文件復(fù)制到客戶端計(jì)算機(jī),以便運(yùn)行該應(yīng)用程序。智能客戶端應(yīng)用程序通常只包含位于目錄層次結(jié)構(gòu)中的一個(gè)或多個(gè)可執(zhí)行文件、一個(gè)或多個(gè) DLL 以及一個(gè)或多個(gè)配置文件。通過將上述所有文件復(fù)制到另一臺(tái)計(jì)算機(jī),您就實(shí)質(zhì)上安裝了該應(yīng)用程序。要卸載該應(yīng)用程序,只需將所有文件從計(jì)算機(jī)中刪除即可。
如果為安裝應(yīng)用程序只需要修改文件系統(tǒng),則 Xcopy 方法可能是最佳選擇。但是,因?yàn)槟鸁o法對(duì)安裝過程進(jìn)行編程控制,所以 Xcopy 方法不 允許您執(zhí)行下列操作:
?
將程序集部署到全局程序集緩存(以及維護(hù)引用)
?
部署 COM 對(duì)象
?
部署要求注冊(cè)或者進(jìn)行其他注冊(cè)表更改的組件
?
與 Windows 外殼程序集成
如果您的應(yīng)用程序要求附加的安裝步驟,則您或許會(huì)在復(fù)制文件之后手動(dòng)執(zhí)行上述步驟。例如,如果您需要修改注冊(cè)表,則可以在目標(biāo)計(jì)算機(jī)上編輯注冊(cè)表或者導(dǎo)入 *.reg 文件,以確保使適當(dāng)?shù)脑O(shè)置就緒。如果您需要將程序集部署到全局程序集緩存,則可以使用帶 /ir 開關(guān)的 Gacutil.exe 實(shí)用工具,以便將程序集安裝到帶有跟蹤引用的全局程序集緩存中。可以通過使用 /ur 開關(guān)在卸載程序集時(shí)刪除這些引用。
注您還可以在 Windows 資源管理器中使用拖放操作將共享程序集移動(dòng)到全局程序集緩存文件夾中。但是,您應(yīng)該避免使用該方法,因?yàn)樵摲椒]有實(shí)現(xiàn)引用計(jì)數(shù)。沒有引用計(jì)數(shù),其他應(yīng)用程序的卸載例程可能導(dǎo)致您的應(yīng)用程序所需的程序集被從全局程序集緩存中刪除。
Xcopy 部署適合于某些智能客戶端應(yīng)用程序,但是,在許多情況下,因?yàn)樾枰獔?zhí)行一些附加步驟才能使應(yīng)用程序正常工作,所以使得這一看起來簡單的方法變得過于費(fèi)力。
Windows 安裝程序軟件包
您可以將要安裝的應(yīng)用程序打包為 Windows 安裝程序軟件包。該方法使您能夠不受限制地在目標(biāo)計(jì)算機(jī)上安裝任何應(yīng)用程序,盡管應(yīng)用程序在運(yùn)行時(shí)會(huì)受到安裝它的最終用戶的安全上下文的限制。
Windows 安裝程序軟件包十分靈活和強(qiáng)大,因此您可以使用它們安裝那些對(duì)客戶端進(jìn)行大量配置更改的非常復(fù)雜的應(yīng)用程序。然而,它們也適合于那些具有簡單得多的安裝要求的應(yīng)用程序。即使您已經(jīng)將應(yīng)用程序設(shè)計(jì)為在安裝時(shí)對(duì)客戶端具有最低限度的影響,您也應(yīng)該考慮使用 Windows 安裝程序軟件包,因?yàn)樗鼈兺ㄟ^在 Start 菜單和桌面上添加圖標(biāo)以及向 Control Panel 中的 Add or Remove Programs 項(xiàng)目中添加應(yīng)用程序,與 Windows 外殼程序集成。這一集成使您能夠有效地控制安裝以及在需要時(shí)卸載應(yīng)用程序。
您可以將下列組件中的任意組件或全部組件添加到 Windows 安裝程序軟件包:
?
項(xiàng)目輸出組
?
服務(wù)文件和文件夾
?
程序集
?
應(yīng)用程序資源
?
合并模塊
?
CAB 文件
?
依賴項(xiàng)
?
注冊(cè)表設(shè)置
?
項(xiàng)目屬性
?
自定義操作
?
用戶界面設(shè)計(jì)設(shè)置
在您創(chuàng)建 Windows 安裝程序軟件包之后,您會(huì)具有多種用于將它分發(fā)到客戶端計(jì)算機(jī)的選擇,包括:
?
使用企業(yè)“推”技術(shù),如 SMS。
?
使用 Active Directory 的“組策略”功能發(fā)布或分配該軟件包。
?
允許用戶從媒體、文件共享或 URL 安裝該軟件包。
通過使用“推”技術(shù)來安裝您的 Windows 安裝程序軟件包,您可以對(duì)安裝何時(shí)發(fā)生以及在何處發(fā)生擁有某種集中式控制。它還使您能夠控制企業(yè)內(nèi)的哪些組應(yīng)該擁有該應(yīng)用程序或該應(yīng)用程序的特定版本。例如,您可以確保安裝針對(duì)特定的用戶組在一天中的特定時(shí)間發(fā)生。但是,請(qǐng)記住,您可能需要大量的硬件和網(wǎng)絡(luò)帶寬(具體取決于應(yīng)用程序的大小)來確保大規(guī)模部署能夠高效進(jìn)行。
Windows 安裝程序軟件包的最重要的優(yōu)點(diǎn)之一是:如果您使用“組策略”或 SMS,則不需要用戶具有管理權(quán)限就可以安裝應(yīng)用程序。Windows 安裝程序軟件包還自動(dòng)支持事務(wù)性安裝。只有兩種可能:Windows 安裝程序軟件包將安裝所有文件和配置更改;或者,如果出現(xiàn)了什么問題,則 Windows 安裝程序?qū)⒒貪L整個(gè)安裝。
Windows 安裝程序軟件包的靈活性意味著它適合于具有任何復(fù)雜性的安裝:從簡單地寫文件系統(tǒng)以及與 Control Panel 中的 Add or Remove Programs 項(xiàng)目集成的應(yīng)用程序,到那些對(duì)客戶端進(jìn)行許多重大配置更改的應(yīng)用程序。
注如果您使用 Windows 安裝程序軟件包來部署您的應(yīng)用程序,則無須使用同一方法來部署更新。在許多情況下,將您的應(yīng)用程序設(shè)計(jì)為在安裝后自動(dòng)更新自身是比較好的做法。有關(guān)如何配置應(yīng)用程序以便自動(dòng)進(jìn)行更新的詳細(xì)信息,請(qǐng)參閱本章后面的“自動(dòng)更新”。
選擇正確的部署方法
既然有如此之多可用于智能客戶端應(yīng)用程序的部署選擇,那么確定適合于您的環(huán)境的正確選擇可能非常困難。但是,您的應(yīng)用程序的要求以及您的用戶的需要通常將決定最佳的方法。
下表概述了每種部署方法的特性。
表 7.1 智能客戶端應(yīng)用程序的部署方法
無接觸部署 帶有應(yīng)用程序更新存根的無接觸部署 從文件共享運(yùn)行代碼 Xcopy 部署 Windows 安裝程序軟件包
可靠的脫機(jī)訪問
完全信任應(yīng)用程序功能
要求客戶端安全策略更改
要求客戶端安全策略更改
非超級(jí)用戶安裝
取決于應(yīng)用程序的要求
是 取決于應(yīng)用程序的要求和應(yīng)用程序分發(fā)機(jī)制
對(duì)系統(tǒng)影響小
取決于應(yīng)用程序的要求
取決于應(yīng)用程序的要求
Windows 外殼程序集成
無限制的安裝
事務(wù)性安裝
需要修改客戶端的 .NET Framework 安全策略
是 — 如果客戶端需要在提升的權(quán)限下運(yùn)行
是 — 僅限于應(yīng)用程序存根。
是 — 如果客戶端需要在提升的權(quán)限下運(yùn)行
在許多情況下,最簡單的方法是使用 Windows 安裝程序軟件包將您的應(yīng)用程序打包。Windows 安裝程序軟件包具有高度的靈活性,使您可以安裝具有任何復(fù)雜性的應(yīng)用程序。如果您使用企業(yè)“推”技術(shù)(如“組策略”或 SMS)來部署您的 Windows 安裝程序軟件包,則還可以在管理安全上下文中安裝該應(yīng)用程序,而無需考慮用戶的安全上下文。當(dāng)您希望使用戶可以通過單擊 URL 來安裝他們的應(yīng)用程序時(shí),則帶有自動(dòng)更新存根的無接觸部署也是一個(gè)可行的選擇,但是您將必須對(duì)目標(biāo)計(jì)算機(jī)的本地安全策略進(jìn)行更改,以確保您的應(yīng)用程序存根應(yīng)用程序可以在完全信任權(quán)限下運(yùn)行。
返回頁首
部署智能客戶端應(yīng)用程序
在最初部署您的智能客戶端應(yīng)用程序之后,您的工作尚未完成。過一段時(shí)間之后,隨著您升級(jí)應(yīng)用程序功能并且修復(fù)缺陷或解決安全漏洞,應(yīng)用程序?qū)⑿枰隆?div style="height:15px;">
根據(jù)具體情況的不同,您可以使用也可以不使用與部署智能客戶端應(yīng)用程序的方法相同的方法來更新它。例如,如果您最初使用 Windows 安裝程序軟件包來部署應(yīng)用程序,則可以使用自動(dòng)更新來部署更新。您的環(huán)境的具體情況通常將決定哪種更新方法最為適合。
部署更新時(shí)的一個(gè)常見要求是能夠聯(lián)合更新基礎(chǔ)結(jié)構(gòu),以便多個(gè)更新不用在由單個(gè)實(shí)體控制的單個(gè)服務(wù)器或服務(wù)器場上競爭。例如,如果某個(gè) ISV 已經(jīng)創(chuàng)建了一個(gè)在客戶的整個(gè)企業(yè)中部署的智能客戶端應(yīng)用程序,并且該 ISV 發(fā)布了該應(yīng)用程序的一個(gè)更新,則該企業(yè)可能希望首先在他們的標(biāo)準(zhǔn)操作環(huán)境中下載并測試該更新,然后再將其傳播到整個(gè)企業(yè)中運(yùn)行的所有計(jì)算機(jī)。通過聯(lián)合更新基礎(chǔ)結(jié)構(gòu),可以使這樣做變得可能。例如,更新服務(wù)器可能位于負(fù)責(zé)從該 ISV 獲取更新的客戶站點(diǎn)上。在該企業(yè)內(nèi)部運(yùn)行的客戶端可以從本地更新服務(wù)器獲取更新,但前提是 IT 管理員予以批準(zhǔn)。使用該方法,還可以通過減輕單個(gè)服務(wù)器或服務(wù)器場的負(fù)載,提高更新基礎(chǔ)結(jié)構(gòu)的性能和可伸縮性。
在部署應(yīng)用程序的更新時(shí),您具有下列選擇:
?
無接觸部署。更新的程序集被添加到 Web 服務(wù)器,以供客戶端自動(dòng)下載。
?
自動(dòng)更新。應(yīng)用程序被配置為自動(dòng)從服務(wù)器下載并安裝更新。
?
從文件共享獲取更新。更新的程序集被添加到網(wǎng)絡(luò)共享,以供客戶端自動(dòng)下載。
?
Xcopy 更新。更新被直接復(fù)制到客戶端。
?
Windows 安裝程序軟件包部署。更新了 Windows 安裝程序軟件包,創(chuàng)建了新的軟件包,或者使用修補(bǔ)軟件包更新客戶端。
對(duì)每個(gè)選擇進(jìn)行詳細(xì)分析,以便您能夠確定哪個(gè)選擇最適合于您的環(huán)境,將是很有用的。
無接觸部署更新
如果您已經(jīng)使用無接觸部署方法部署了簡單應(yīng)用程序或更為復(fù)雜的應(yīng)用程序的組成部分,則通過在 Web 服務(wù)器上放置新文件即可更新這些程序集。在應(yīng)用程序加載程序集之前,.NET Framework 會(huì)自動(dòng)在本地以及在 Web 服務(wù)器上檢查該程序集的時(shí)間戳,以便確定是否需要重新下載該程序集,或者是否可以只是從用戶的程序集下載緩存中運(yùn)行該程序集。
注無接觸部署具有許多限制,使其不適合于部署大多數(shù)智能客戶端應(yīng)用程序。有關(guān)詳細(xì)信息,請(qǐng)參閱本章前面的“無接觸部署”。
盡管使用無接觸部署方法發(fā)布更新通常非常簡單,但您的客戶端有可能在升級(jí)過程中由于缺少對(duì)事務(wù)性安裝的支持而出現(xiàn)問題。如果您在客戶端使用應(yīng)用程序的過程中更新目錄,則客戶端最初可能下載舊代碼,然后嘗試下載自那時(shí)起已經(jīng)更新的其他代碼。這可能導(dǎo)致不可預(yù)知的結(jié)果,并且可能導(dǎo)致您的應(yīng)用程序失敗。該問題最簡單的解決方案是將任何重要的更新都部署到 Web 服務(wù)器上的單獨(dú)目錄中,然后在部署完成后,將所有鏈接更改到這一新位置。
注如果您選擇使用帶有自動(dòng)更新存根的無接觸部署方法來部署您的應(yīng)用程序,則請(qǐng)參閱下一節(jié)“自動(dòng)更新”。
自動(dòng)更新
在大多數(shù)情況下,修補(bǔ)、重新打包和更新應(yīng)用程序的最佳方法是將更新基礎(chǔ)結(jié)構(gòu)構(gòu)建到應(yīng)用程序本身內(nèi)。在此情況下,可以將客戶端應(yīng)用程序設(shè)計(jì)為自動(dòng)從服務(wù)器下載并安裝更新,并且由 IT 管理員將這些更新發(fā)布到服務(wù)器以供客戶端獲取。要達(dá)到此目的,您可以在應(yīng)用程序中包含相應(yīng)的代碼以便該應(yīng)用程序能夠執(zhí)行下列操作:
?
自動(dòng)檢查是否有更新。
?
如果有更新則進(jìn)行下載。
?
通過應(yīng)用這些更新來升級(jí)其自身。
當(dāng)您配置您的應(yīng)用程序以自動(dòng)更新時(shí),確保將所有已更新的文件下載到客戶端十分重要。當(dāng)您更新具有強(qiáng)名稱的程序集時(shí),這一點(diǎn)尤其重要。調(diào)用具有強(qiáng)名稱的程序集的程序集必須指定具有強(qiáng)名稱的程序集的版本,因此如果您更新具有強(qiáng)名稱的程序集,您還必須更新任何調(diào)用它們的程序集。
在配置事務(wù)性更新時(shí),您可以使用代碼來檢查是否在本地安裝了這些更新,并根據(jù)清單來驗(yàn)證它們。通常,您將決定在單獨(dú)的目錄中安裝更新,然后或者在成功安裝之后刪除原始目錄,或者保留原始目錄不動(dòng)以提供后備應(yīng)用程序。
有關(guān)自動(dòng)更新以及 Updater Application Block 的用法的詳細(xì)信息,請(qǐng)參閱本章前面的“帶有應(yīng)用程序更新存根的無接觸部署”。
注自動(dòng)更新將通過 .NET Framework 版本 2.0 中的 ClickOnce 功能進(jìn)行簡化。作為部署清單的一部分,您將能夠指定應(yīng)用程序是否檢查更新以及何時(shí)應(yīng)該檢查是否有更新,并且能夠指定備用的更新位置。
從文件共享獲取更新
您將程序集復(fù)制到文件共享時(shí),則應(yīng)用程序每次運(yùn)行時(shí),這些程序集都會(huì)被下載到客戶端并且不會(huì)緩存。像無接觸部署一樣,要更新原來通過從文件共享運(yùn)行代碼部署的應(yīng)用程序,只需將新代碼添加到文件共享。然后,客戶端在下次運(yùn)行時(shí)將下載新代碼。
Xcopy 更新
如果您原來使用文件復(fù)制技術(shù)分發(fā)您的應(yīng)用程序,則您可能希望以相同的方式部署更新。無論原來的部署機(jī)制如何,當(dāng)更新比較簡單(如對(duì)配置文件進(jìn)行的修改)時(shí),文件復(fù)制仍然可能是更新應(yīng)用程序的最有效方法之一。在這樣的情況下,在部署更新時(shí),只需復(fù)制新文件,并且刪除任何不再需要的舊文件。
通常,您只需通過復(fù)制新版本的程序集以覆蓋舊版本,更新專用程序集。然而,盡管您可以使用簡單的復(fù)制操作對(duì)具有強(qiáng)名稱的程序集進(jìn)行初始部署,但您無法以這種方式更新具有強(qiáng)名稱的程序集并且讓您的應(yīng)用程序(或其他程序集)自動(dòng)使用該程序集。程序集的強(qiáng)名稱存儲(chǔ)在引用它的任何程序集的清單中,并且公共語言運(yùn)行庫 (CLR) 將某個(gè)具有強(qiáng)名稱的程序集的不同版本視為完全不同的程序集。除非您另外指定,否則 CLR 會(huì)加載原來構(gòu)建應(yīng)用程序時(shí)所依據(jù)的具有強(qiáng)名稱的程序集的同一版本。
Windows 安裝程序更新
Windows 安裝程序提供了一種用于更新 .NET Framework 應(yīng)用程序的全面解決方案。它的幾項(xiàng)功能經(jīng)過專門設(shè)計(jì),以便解決應(yīng)用程序更新問題。
Windows 安裝程序軟件包內(nèi)置了對(duì)版本控制的支持。如果您正確地對(duì)應(yīng)用程序進(jìn)行版本控制,則 Windows 安裝程序軟件包能夠自動(dòng)確保更新正確發(fā)生,并且您可以指定在安裝新的應(yīng)用程序時(shí)是否要?jiǎng)h除以前版本的應(yīng)用程序。
如果您要使用“推”技術(shù)(如 SMS)來部署這些更新,則您還可以控制哪些用戶將獲得更新以及他們何時(shí)獲得這些更新。如果您要在更廣泛地部署更新之前通過特定的用戶組測試這些更新,則該功能尤其有用。
如果您計(jì)劃使用 Windows 安裝程序技術(shù)升級(jí)您的應(yīng)用程序,則您具有三個(gè)用于實(shí)現(xiàn)該升級(jí)的選擇:
?
生成修補(bǔ)軟件包 (.msp) 并將其應(yīng)用于當(dāng)前安裝的應(yīng)用程序。
?
更新現(xiàn)有的 Windows 安裝程序文件。
?
創(chuàng)建全新的 Windows 安裝程序文件。
通常,如果您要使用 Windows 安裝程序來部署更新,則應(yīng)該使用修補(bǔ)軟件包或者更新現(xiàn)有的 Windows 安裝程序文件。如果您創(chuàng)建全新的 Windows 安裝程序文件,則 Microsoft Windows? 不會(huì)將該軟件包識(shí)別為更新,并且 Windows 的升級(jí)管理功能將無法正常工作。但是,在某些情況下,更改是如此廣泛,以至于您可能選擇放棄該功能并創(chuàng)建新的 Windows 安裝程序文件。
注有關(guān)使用 Windows 安裝程序部署更新的詳細(xì)信息,請(qǐng)參閱Deploying .NET-Framework-Based Applications,網(wǎng)址為:http://www.microsoft.com/downloads/details.aspx?FamilyId=5B7C6E2D-D03F-4B19-9025-6B87E6AE0DA6&displaylang=en。
返回頁首
選擇正確的更新方法
在某些情況下,您選擇的更新方法由您為應(yīng)用程序選擇的部署方法限定。但是,最適當(dāng)?shù)姆椒ㄍǔS赡渴鸬母碌男再|(zhì)決定。例如,您可能只是復(fù)制新文件以覆蓋舊文件,或者您可能希望更新的應(yīng)用程序與舊應(yīng)用程序并列運(yùn)行。更新可能涉及到將新的程序集添加到全局程序集緩存,或者更改注冊(cè)表中的配置信息。如果您要部署對(duì)具有強(qiáng)名稱的程序集的更新,則更新將變得更為復(fù)雜,因?yàn)檎{(diào)用具有強(qiáng)名稱的程序集的每個(gè)程序集都將在調(diào)用中使用版本號(hào)。
表 7.2 概述了可用于更新應(yīng)用程序的選擇以及每個(gè)選擇所支持的功能。
表 7.2 智能客戶端應(yīng)用程序的更新方法
無接觸部署更新 帶有應(yīng)用程序更新存根的自動(dòng)更新 從文件共享獲取更新 Xcopy 更新 Windows 安裝程序更新
非超級(jí)用戶更新
取決于應(yīng)用程序的要求
取決于應(yīng)用程序的要求和應(yīng)用程序分發(fā)機(jī)制
集中式更新管理
取決于應(yīng)用程序分發(fā)機(jī)制
在運(yùn)行應(yīng)用程序時(shí)下載更新
聯(lián)合的更新基礎(chǔ)結(jié)構(gòu)
逐個(gè)用戶/組進(jìn)行更新
取決于應(yīng)用程序分發(fā)機(jī)制
事務(wù)性更新
內(nèi)置的版本控制支持
在許多情況下,自動(dòng)更新是部署應(yīng)用程序更新的最有效的方法。但是,在部署重大更新或涉及到對(duì)客戶端進(jìn)行復(fù)雜配置更改的更新時(shí),您可能需要使用 Windows 安裝程序(它也具有自動(dòng)版本控制支持的好處)。
小結(jié)
部署智能客戶端應(yīng)用程序要比過去部署胖客戶端應(yīng)用程序容易得多,這要?dú)w功于 .NET Framework 所具有的功能。但是,要成功完成部署,您需要進(jìn)行大量重要的選擇,包括如何設(shè)計(jì)您的應(yīng)用程序以便于部署,以及您為應(yīng)用程序和 .NET Framework 本身選擇哪種部署方法這兩個(gè)方面。
在大多數(shù)情況下,部署應(yīng)用程序的最佳選擇是使用 Windows 安裝程序軟件包,或者使用無接觸部署和應(yīng)用程序更新存根的組合。您將需要考慮在部署應(yīng)用程序之后如何有效地維護(hù)該應(yīng)用程序以及部署更新。同樣,在大多數(shù)情況下,最佳選擇很可能是 Windows 安裝程序或由應(yīng)用程序本身控制的自動(dòng)更新。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows程序的打包,部署(vs項(xiàng)目打包vs2013)
部署 WPF 應(yīng)用程序
(1)程序集基礎(chǔ)知識(shí)
老徐的博客 ? Blog Archive ? .NET Framework 4與.NET Framework 4 Client Profile 的區(qū)別
[.net framework4.0]基于.NET Framework 4.0的解決方案部...
智能客戶端(架構(gòu)設(shè)計(jì))(二)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服