歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

應(yīng)用系統(tǒng)自動升級 畢業(yè)設(shè)計(jì)論文

  • 資源ID:27811418       資源大?。?span id="26ackgt" class="font-tahoma">699.13KB        全文頁數(shù):43頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

應(yīng)用系統(tǒng)自動升級 畢業(yè)設(shè)計(jì)論文

XX院本科畢業(yè)設(shè)計(jì)(論文)應(yīng)用系統(tǒng)自動升級學(xué)生姓名: X X 學(xué)生學(xué)號: 院(系): 計(jì)算機(jī)學(xué)院 年級專業(yè): 07網(wǎng)絡(luò)工程 指導(dǎo)教師: XxX XXX教授 二一一年五月XX本科畢業(yè)設(shè)計(jì)(論文) 摘 要摘 要隨著軟件需求的變化和技術(shù)競爭的加劇,軟件供應(yīng)商不斷提供更多更好的軟件產(chǎn)品和服務(wù)來滿足日益變化的市場需要。對于通用的軟件產(chǎn)品來說,用戶數(shù)量眾多,更新頻繁,運(yùn)行的軟件平臺和網(wǎng)絡(luò)環(huán)境多,因此在每次新產(chǎn)品發(fā)布時(shí)如何簡單、高效地幫助用戶更新?lián)Q代軟件產(chǎn)品,成為領(lǐng)先的軟件供應(yīng)商關(guān)注的課題。對商品化軟件來說,良好的售后服務(wù)是至關(guān)重要的,而軟件升級是軟件售后服務(wù)中非常重要的一個(gè)部分。在平時(shí)開發(fā)C/S系統(tǒng)時(shí),大家都清楚C/S系統(tǒng)的最大弱點(diǎn)就是不利于維護(hù),當(dāng)客戶端程序更新時(shí)不得不到每個(gè)用戶的機(jī)子上去部署。雖然微軟的Smart Client技術(shù)使得傳統(tǒng)的C/S系統(tǒng)更加利于維護(hù),但現(xiàn)在還不打算采用。Smart Client是一個(gè)不同于以往常見的應(yīng)用程序的比較復(fù)雜的系統(tǒng),所以它的調(diào)試技術(shù)也比以前復(fù)雜的多,至今仍然是一個(gè)難點(diǎn)。因?yàn)?,開發(fā)的代碼大都不是一個(gè)可執(zhí)行的應(yīng)用程序,更多的是dll庫文件,這樣就無法直接調(diào)試,必須得寫出一個(gè)調(diào)試程序來進(jìn)行間接調(diào)試。同時(shí)因?yàn)樗神詈虾途W(wǎng)絡(luò)加載的原因,使得本地緊耦合調(diào)試和實(shí)際運(yùn)行情況多少有些不同。這一點(diǎn)還沒有有效的解決辦法。盡管VS2005 推出了Click Once,也具有實(shí)現(xiàn)自動更新的功能,但其可控性差和不夠靈活等缺陷,導(dǎo)致其實(shí)際用途較少。而Updater Application Block組件的配置和使用相似地麻煩,所以我們選擇采用傳統(tǒng)的自動更新的程序。自動更新的步驟就是客戶端檢查服務(wù)器端的版本號是否比本地的新,如果不同于本地版本,就向服務(wù)器請求下載文件。在這里我們服務(wù)器端部署的升級文件是任何人都可以下載的。從上面的描述可以看出,其實(shí)所有系統(tǒng)自動升級的步驟都是類似的,所以做一個(gè)通用的自動升級程序能夠減少不少麻煩。關(guān)鍵詞 自動更新,服務(wù)器端,版本號XX本科畢業(yè)設(shè)計(jì)(論文) ABSTRACTABSTRACT With the increasing changes of the Software requirements and the competition in technology, Software vendors try to supply more and more convenient software and service to meet the market. For general software products, more and more users are involved, they have to adapt to all kinds of software platform and network environment, and they have to be updated frequently. So its very important for the Software vendors to think about how to supply more simple and efficient products.As is known to all, its hard to maintain the C/S system. Once the Client updated, we have to setup the software for every computer to make them update. Though Smart Client from Microsoft made it very easy to realize, I ignore it. Smart Client is a more complex system than that we have seen .Which makes it become very difficult to debug the code. When we code with the help of Smart Client, it will produce some DDL files, which cannot be debug like applications. Moreover, there are some difficult cases existed because of loose coupling and loading. We have not overcome it so far.Though Microsoft have released VS2005 which contained a component named Click Once, which could realize update. Unluckily, it has some defects such as bad controlling and bad flexible. May you will think about Updater Application Block, you got it, but its trivial configurations make us tired. And its very inconvenient to configure and use the Updater Application Block Component. So we choose to adopt traditional automatic updates program. So in the end, I select the traditional strategy to complete this topic. Automatic updates procedure is to client check when server version number is newer than that of client, and deciding whether to update depend on the results. Every one could download the file which we deployed on the server. According to the description above, it is similar to all kinds of Automatic update software. So if we design general purpose software, it will reduce lots of trouble.Key words automatic updates,server, versionIXX院本科畢業(yè)設(shè)計(jì)(論文) 目 錄目 錄摘 要IABSTRACTII1 緒論11.1自動升級的背景11.2自動更新系統(tǒng)的研發(fā)與現(xiàn)狀11.3 什么是軟件升級31.4 軟件升級的意義31.5 軟件升級的現(xiàn)狀41.6 應(yīng)用程序的升級41.6.1獲得最新版本的軟件41.6.2對應(yīng)用軟件進(jìn)行升級51.7 常見的升級方式61.8 軟件升級原理71.9 論文主要的工作內(nèi)容72 相關(guān)開發(fā)技術(shù)和工具介紹82.1 Windows應(yīng)用程序介紹82.2 .NET Framework簡介82.3 ASP.NET的發(fā)展基礎(chǔ)92.4 C#編程語言102.5 開發(fā)平臺112.6 通信協(xié)議112.7 相關(guān)知識122.7.1 委派122.7.2 事件122.7.3 線程132.7.4 泛型132.7.5 裝箱與拆箱143 需求分析153.1 應(yīng)用需求分析153.2 系統(tǒng)功能需求163.2.1系統(tǒng)主要功能分析163.2.2自動升級原理圖174 系統(tǒng)設(shè)計(jì)184.1 系統(tǒng)設(shè)計(jì)思想184.2 系統(tǒng)目標(biāo)205 系統(tǒng)實(shí)現(xiàn)215.1 服務(wù)器端215.1.1 IIS的安裝與配置215.1.2 啟動Internet信息服務(wù)器(IIS)215.1.3 服務(wù)端配置文件格式225.1.3 服務(wù)端文件的配置過程225.1.4 瀏覽器訪問測試245.1.5上傳文件到服務(wù)器端255.2 客戶端265.2.1 客戶端配置文件格式265.3 代碼設(shè)計(jì)266 結(jié)論33參 考 文 獻(xiàn)35致 謝36IIIXX本科畢業(yè)設(shè)計(jì)(論文) 1 緒論1 緒論1.1自動升級的背景即便擁有多年軟件開發(fā)經(jīng)驗(yàn)的團(tuán)隊(duì)也不敢保證自己所做的軟件是完美的,它或多或少會存在一些缺陷,甚至?xí)嬖谥T多的漏洞。在軟件的使用中,也會不斷發(fā)現(xiàn)更多的問題,這些問題可能是軟件本身的問題,也可能是運(yùn)行的軟硬件環(huán)境變化造成的,而且用戶也會對軟件不斷地提出新的要求。所以,軟件的升級是不可避免的。對于用戶而言,軟件升級可以修補(bǔ)漏洞,確保數(shù)據(jù)安全;可以更新和增加新功能。對于軟件開發(fā)商而言,為了滿足市場需求,也需要不斷地升級自己的軟件,力求做得更好。相信有許多程序員都喜歡用Winform做開發(fā)吧?因?yàn)閃inform相對Webform而言,優(yōu)點(diǎn)是,功能更強(qiáng)大,編程更方便。但是它的缺點(diǎn),就是軟件的安裝及維護(hù)是相當(dāng)麻煩的,要實(shí)現(xiàn)軟件更新,需要到客戶端一臺一臺地升級。當(dāng)然,實(shí)現(xiàn)應(yīng)用系統(tǒng)自動更新功能有很多方法,但是他們的基本原理是大同小異的。自動更新的步驟就是客戶端檢查服務(wù)器端的版本號是否比本地的高,如果高于本地版本,就向服務(wù)器請求下載文件。在這里我們服務(wù)器端部署的升級文件是任何人都可以下載的。從上面的描述可以看出,其實(shí)所有系統(tǒng)自動升級的步驟都是類似的,所以做一個(gè)通用的自動升級程序就可以減少不少麻煩。實(shí)現(xiàn)軟件的自動升級存在的困難:第一,為了查找遠(yuǎn)程服務(wù)器上的更新,應(yīng)用程序必須有查詢網(wǎng)絡(luò)的途徑,這需要網(wǎng)絡(luò)編程、簡單的應(yīng)用程序與服務(wù)器通訊的協(xié)議。第二是下載。下載看起來不需要考慮聯(lián)網(wǎng)的問題,但要考慮下載用戶請求的文件,以及在沒有用戶同意時(shí)下載大文件。友好的自動更新應(yīng)用程序?qū)⑹褂檬S嗟膸捪螺d更新。這聽起來簡單,但卻是一個(gè)技術(shù)難題,幸運(yùn)的是已經(jīng)有了解決方法。第三個(gè)考慮因素是使用新版應(yīng)用程序更換原應(yīng)用程序的過程。這個(gè)問題比較有趣,因?yàn)樗蟠a運(yùn)行時(shí)將自己從系統(tǒng)刪除,有多種辦法可以實(shí)現(xiàn)該功能,本文程序主要通過比較新舊版本的版本號來實(shí)現(xiàn)替換新版本應(yīng)用程序的功能。 1.2自動更新系統(tǒng)的研發(fā)與現(xiàn)狀自動更新特性是通用軟件的常用特性,當(dāng)前國內(nèi)外各大軟件提供商都對軟件更新系統(tǒng)投入相當(dāng)?shù)年P(guān)注和研發(fā)力量,并且已有一些軟件產(chǎn)品已經(jīng)發(fā)布。經(jīng)研究,當(dāng)前市場上存在的更新工具主要有四種:1)基于Client/Server 架構(gòu)的自動更新工具此類工具界面嵌入在產(chǎn)品程序中或與產(chǎn)品程序集成,用戶啟動產(chǎn)品客戶端,程序搜索可更新的軟件包,下載后自動安裝。代表產(chǎn)品有金山毒霸和諾頓(Norton Antivirus)。以金山毒霸為例,其產(chǎn)品特性如下:u 支持20多個(gè)服務(wù)器,從中選擇最快的服務(wù)器下載u 升級工具嵌入在產(chǎn)品中,升級界面為定制的向?qū)浇缑鎢 更新前通過檢測分析來確定要下載和更新的內(nèi)容u 文件支持HTTP下載,不支持FTP下載,支持代理服務(wù)器,不支持?jǐn)帱c(diǎn)續(xù)傳u 更新過程中若有失敗則可以撤銷更新u 支持更新自身程序u 更新結(jié)束時(shí)能重啟軟件2)直接使用安裝程序的自動更新系統(tǒng)此類系統(tǒng)能自動檢測是否有更新,后臺下載安裝程序,用戶運(yùn)行安裝程序的形式來安裝,一般用于升級補(bǔ)丁程序。代表產(chǎn)品有Microsoft Windows Update工具。其產(chǎn)品特性有:u 支持單服務(wù)器,支持但產(chǎn)品u 后臺下載安裝程序,安裝程序是一個(gè)完整的可執(zhí)行程序包,下載時(shí)用戶無需操作,下載完成通知用戶u 采用系統(tǒng)默認(rèn)的網(wǎng)絡(luò)設(shè)置下載,由于安裝包文件會比較多,下載量大,支持?jǐn)帱c(diǎn)續(xù)傳u 用戶運(yùn)行安裝程序,安裝過程就是安裝某個(gè)更新包,安裝后可卸載更新包u 安裝結(jié)束時(shí)能重啟軟件此特性演變成Microsoft.NET中的智能更新服務(wù)3)基于Web/ActiveX的自動更新工具此系統(tǒng)的界面為WEB頁面,用戶首先接受下載一個(gè)具有更新功能的ActiveX控件,此ActiveX控件自動運(yùn)行,搜索下載可更新的內(nèi)容,并在下載后自動更新。代表產(chǎn)品有Microsoft Platform SDK Update工具。u 界面是WEB頁面進(jìn)行,通過運(yùn)行Active控件執(zhí)行功能u 一個(gè)產(chǎn)品一個(gè)站點(diǎn),完全定制的更新內(nèi)容u 后臺自動檢測、下載和安裝軟件u 采用瀏覽器的網(wǎng)絡(luò)設(shè)置,下載不支持?jǐn)帱c(diǎn)續(xù)傳u 更新失敗不可撤消更新u 更新后能重啟的軟件4)采用后臺服務(wù)形式的自動更新工具此系統(tǒng)采用后臺服務(wù)的方式運(yùn)行在用戶計(jì)算機(jī),服務(wù)程序自動檢測、下載和安裝軟件。如Install Shield的自動更新服務(wù)系統(tǒng)。制作產(chǎn)品安裝程序時(shí)設(shè)定更新服務(wù)信息,安裝產(chǎn)品時(shí)將服務(wù)程序安裝到用戶計(jì)算機(jī),安裝程序和更新服務(wù)程序集成得比較好u 系統(tǒng)啟動服務(wù)程序,后臺檢測、下載和安裝軟件包,沒有更新界面u 采用瀏覽器的網(wǎng)絡(luò)設(shè)置,下載支持?jǐn)帱c(diǎn)續(xù)傳u 更新失敗可撤消更新u 更新后能重啟的軟件1.3 什么是軟件升級軟件產(chǎn)品技術(shù)復(fù)雜,功能需要不斷完善,要不斷更新、修改,這就是軟件升級。對于軟件版本,前一部分?jǐn)?shù)字的遞增表示該軟件產(chǎn)品有較大的,往往帶有實(shí)質(zhì)性的改進(jìn),后一部分?jǐn)?shù)字的遞增則表示只有局部的、較小的改進(jìn),通常是對較小的bug或安全性的修改或?qū)π阅艿妮^小的提高。為了為維護(hù)軟件項(xiàng)目,我們提出了對版本進(jìn)行管理控制的要求。而對于用戶來說,版本直接體現(xiàn)在版本號命名上。那么,如何對版本號進(jìn)行命名呢?我查了許多資料,希望能夠解釋的比較具體。下面讓我們看一下比較普遍的三種命名格式。GNU風(fēng)格的版本號命名格式:主版本號.子版本號.修正版本號.編譯版本號示例:1.2.1, 2.0, 5.0.0Windows 風(fēng)格的版本號命名格式:主版本號.子版本號修正版本號.編譯版本號.NET Framework 風(fēng)格版本號命名格式:主版本號.子版本號.編譯版本號.修正版本號在本文中,軟件升級包括安裝計(jì)算機(jī)上已有軟件的新的版本、從原版本上升到新的版本、對現(xiàn)有軟件的更新。1.4 軟件升級的意義面對目前計(jì)算機(jī)應(yīng)用的普及,越來越多的行業(yè)離不開計(jì)算機(jī),這無疑給計(jì)算機(jī)軟件開發(fā)人員和軟件供應(yīng)商帶來很大壓力。對計(jì)算機(jī)軟件行業(yè)而言,計(jì)算機(jī)技術(shù)的普及既是挑戰(zhàn)也是機(jī)遇。必須承認(rèn),軟件供應(yīng)商已經(jīng)為我們提供了優(yōu)質(zhì)的軟件和服務(wù),但這仍然不能滿足用戶們的需求。幾乎同時(shí)在每個(gè)行業(yè)的每臺計(jì)算機(jī)上都同時(shí)安裝了數(shù)十款軟件,對于用戶數(shù)量較多的企業(yè),寄希望于系統(tǒng)維護(hù)人員去更新每一臺計(jì)算機(jī)上的應(yīng)用軟件簡直是天方夜譚。他們更希望軟件供應(yīng)商能夠提供帶有自動更新功能的軟件,這樣似乎更人性化。面對這些需求,本課題試圖尋求一種Windows 應(yīng)用系統(tǒng)從開發(fā)和變化的角度來適應(yīng)市場需求和工程領(lǐng)域的實(shí)際需求,以減少系統(tǒng)維護(hù)人員的壓力,提高他們的工作效率,以求得最大的經(jīng)濟(jì)效益和社會效益。在軟件工程中,軟件升級屬于軟件維護(hù)階段。通常有四類維護(hù)活動:改正性維護(hù),即診斷和改正軟件使用過程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù),即修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù),即根據(jù)用戶的要求改進(jìn)或擴(kuò)充軟件使他更加完善;預(yù)防性維護(hù),即修改軟件為將來的維護(hù)活動預(yù)先作準(zhǔn)備。軟件維護(hù)是軟件生命周期中的一個(gè)重要組成部分,軟件維護(hù)的成本高達(dá)開發(fā)成本的四倍左右。每一次維護(hù)活動以后,軟件商通常會修改軟件的版本號,即又有了一個(gè)新的版本,如果用戶要想使用新的版本,就必須要升級。由此可以看出,軟件升級具有重大意義:可以改正軟件中的錯(cuò)誤,適應(yīng)新的軟硬件環(huán)境,完善軟件功能,以及為以后的升級做準(zhǔn)備。軟件升級分為兩種,一種是從一個(gè)版本升級到另一個(gè)版本,軟件版本號的第一數(shù)字發(fā)生變化,這種升級一般是對原版本有了較大的改進(jìn);另外一種是對軟件的副版本號發(fā)生變化,這種升級只對軟件做了較小的改進(jìn),我們叫做打補(bǔ)丁。1.5 軟件升級的現(xiàn)狀各個(gè)軟件廠家都在不斷推出自己軟件產(chǎn)品的新版本,從而增加軟件的功能,補(bǔ)充產(chǎn)品的性能,補(bǔ)全漏洞,提高競爭能力。用戶為了自己使用的方便和避免各種各樣由于軟件問題引起的錯(cuò)誤,也需要對常用軟件進(jìn)行更新。我們常見的需要升級的軟件有殺毒軟件、驅(qū)動程序、操作系統(tǒng),瀏覽器以及第三方軟件應(yīng)用程序等。1.6 應(yīng)用程序的升級應(yīng)用軟件包括我們常用的辦公軟件,如WinZip、WinRar、Office軟件等。還包括在某一行業(yè)通用軟件,以及某單位自行開發(fā)的軟件或請軟件開發(fā)人員開發(fā)的軟件,如建筑行業(yè)的預(yù)算軟件。1.6.1獲得最新版本的軟件當(dāng)我們熟悉的軟件推出新的版本可以通過以下方式獲得:1)商業(yè)軟件找到原經(jīng)銷商付費(fèi)升級;免費(fèi)派送;2)免費(fèi)軟件網(wǎng)上免費(fèi)下載升級,如微軟很多產(chǎn)品可以直接到Microsoft官方網(wǎng)站下載。 3)共享軟件可以從軟件主頁上下載試用版,注冊用戶會有E-mail通知。1.6.2對應(yīng)用軟件進(jìn)行升級應(yīng)用軟件的升級分為以下四種情況:1)需要?jiǎng)h除舊版本的軟件。有些軟件升級需要?jiǎng)h除原來的舊版本。如著名的DirectX 8.0強(qiáng)化了圖像質(zhì)量和音頻效果,但如果你已經(jīng)安裝過它的測試版,那么在升級時(shí)就會無法安裝,需要卸載原來安裝的版本。2)需要無后臺程序運(yùn)行的軟件。有許多軟件在安裝時(shí)要求無后臺程序同時(shí)運(yùn)行。雖然我們看到“建議在安裝時(shí)關(guān)閉其他應(yīng)用程序”的提示總是不太在意,但有的軟件卻對這方面比較敏感,如智能陳橋五筆輸入軟件,他在安裝時(shí)不允許舊版本的陳橋五筆處于運(yùn)行狀態(tài)。3)升級時(shí)需要相應(yīng)支持的軟件。有一些軟件安裝需要其他文件的支持,如游戲程序一般需要較高版本的DirectX的支持,還有一些數(shù)據(jù)庫軟件需要VB、VC運(yùn)行庫或ODBC的支持等,若安裝程序檢測到條件不足時(shí),安裝程序就會無法進(jìn)行下去。這時(shí)可以到原下載網(wǎng)站去下載支持文件或者根據(jù)提示信息重新安裝有關(guān)的軟件。4)只需要進(jìn)行在線更新的軟件按。有些軟件可以自動鏈接到廠家或軟件公司的網(wǎng)站看是否有新的更新的版本,如果有新的版本就進(jìn)行升級??偟膩碚f,絕大部分應(yīng)軟件升級的要求并不高,只要直接執(zhí)行Setup.exe文件即可,有些軟件的升級更簡單,只需要將相應(yīng)文件拷貝到原安裝路徑下覆蓋原文件即可。本文采用的就是這種最簡單的方案。采用通用的方法,即比較Client和Server兩端配置文件中版本號的大大小來決定是否有更新,這種思路很通用。1.7 常見的升級方式常見的升級方式有以下幾種,每種方式都有自己的特點(diǎn),用戶可以根據(jù)自己的情況選擇不同的升級方式:1)下載升級包從軟件商的網(wǎng)站或其他網(wǎng)站下載軟件升級包,然后運(yùn)行其中的可執(zhí)行文件,就會對原有軟件進(jìn)行升級。比如我們常會在殺毒軟件的網(wǎng)站上看到各種各樣的升級包。這種升級方式比較簡單,特別適合本機(jī)不能上網(wǎng)的用戶,如果幾臺計(jì)算機(jī)安裝了同一款軟件的同一版本而相互之間又沒有聯(lián)網(wǎng)的情況下,此種升級方式是比較合適的。2)在線升級這種方式可謂“自動化”升級,用戶只需要保證網(wǎng)絡(luò)是暢通的,點(diǎn)擊升級軟件界面上的“在線升級”或“自動升級”按鈕,軟件就會自動連接到相應(yīng)的網(wǎng)站上去,檢查本機(jī)上已安裝的組件,然后列出網(wǎng)站上可更新的內(nèi)容。如果用戶點(diǎn)擊“確認(rèn)升級”按鈕,就會自動更新本機(jī)已安裝的軟件,然后重新啟動該軟件,就是現(xiàn)在的最新版本了。這種升級方式是最簡單的,用戶只需要按照提示一步一步進(jìn)行就可以了,即使對電腦不熟悉的人都可以完成軟件的升級,但是必須保證網(wǎng)絡(luò)是暢通的,如果網(wǎng)絡(luò)中斷了,那么升級失敗,軟件還是原來的版本,可以在網(wǎng)絡(luò)通暢的時(shí)候重新升級。3)局域網(wǎng)升級有些軟件會提供從局域網(wǎng)上升級的功能。如金山毒霸。首先將服務(wù)器上的金山毒霸升級到最新版本。然后將服務(wù)器上的金山毒霸安裝目錄設(shè)置為只讀共享,并將局域網(wǎng)其他機(jī)器上的獨(dú)霸升級程序設(shè)置為“本地、局域網(wǎng)上升級”,升級目錄設(shè)為服務(wù)器上獨(dú)霸安裝目錄下的Update目錄,選定路徑就可以自動升級了。這種方式對于網(wǎng)絡(luò)管理員是很省時(shí)省力的,但是目前很多軟件沒有提供這種升級方式,所以網(wǎng)絡(luò)管理員通常采用Ghost進(jìn)行備份安裝。4)覆蓋安裝此升級方式就是直接將新版本軟件覆蓋舊版本軟件,從而達(dá)到升級的效果。但是需要注意的是新本跟舊版軟件的安裝目錄必須一樣,否則升級不成功。如我們常常從一種操作系統(tǒng)升級到另外一種操作系統(tǒng)。這種升級方式的好處是不管是系統(tǒng)軟件還是應(yīng)用軟件,升級后都保持原來的設(shè)置,不需要重新設(shè)置,特別是對操作系統(tǒng),采用這種升級方式我們不需要重新安裝大量的應(yīng)用程序。5)移除后安裝這是很多軟件作者建議的安裝方式,如果使用第四種方法升級失敗了,那么建議用戶使用這種方式。這種方式將原版本刪除后再安裝新版本,可以保證安裝的完整、準(zhǔn)確。在移除舊版本的軟件之前,如果軟件帶有數(shù)據(jù)庫,或其他用戶資料,則應(yīng)保存數(shù)據(jù)庫的內(nèi)容或?qū)?shù)據(jù)導(dǎo)出,安裝完新版本之后再導(dǎo)入,也有軟件升級時(shí)提供了數(shù)據(jù)自動備份的功能,但是目前這種軟件很少。由于是完整的安裝,這種方式需要的時(shí)間比較長。本文也是采取這種方式。1.8 軟件升級原理雖然升級方式多種多樣,但是他們的原理是大同小異的,就是把新版本的軟件與計(jì)算機(jī)上已安裝的軟件進(jìn)行對比,然后將舊版本中欲更新的部分換成新版本軟件中相應(yīng)的部分。例如升級殺毒軟件就是更新病毒庫,有經(jīng)驗(yàn)的用戶甚至可以在病毒庫中加入新的病毒代碼,從而預(yù)防新的病毒。在更新硬件的驅(qū)動程序時(shí),就是用新的INF文件代替系統(tǒng)中舊的INF文件(在Windows 2000系統(tǒng)中,系統(tǒng)盤的WINNTINF中存放的全是驅(qū)動程序文件,在其他系統(tǒng)中,驅(qū)動程序存放在系統(tǒng)盤的WindowsINF文件夾中)。在進(jìn)行完全安裝時(shí),則進(jìn)行了較大的改動。我們也可以看成是用新的部分代替原軟件中舊的部分,只是替換的部分很多。為了便于升級,很多軟件采用了模塊化設(shè)計(jì)的思想,這也是軟件發(fā)展的方向。任何整體都是由部分組成的,將一個(gè)軟件分為若干個(gè)功能模塊,每個(gè)模塊完成一個(gè)任務(wù),那么在升級的時(shí)候?qū)ο鄳?yīng)的模塊進(jìn)行升級,而不影響其他部分。1.9 論文主要的工作內(nèi)容本論文主要的工作內(nèi)容包括:1. 分析課題的可行性和需求分析說明;2. 根據(jù)選定的開發(fā)方案,對解決方案的功能模塊進(jìn)行分析設(shè)計(jì),以及根據(jù)功能模塊的需要詳細(xì)設(shè)計(jì)出數(shù)據(jù)存儲方式和存儲結(jié)構(gòu),最后根據(jù)系統(tǒng)實(shí)現(xiàn)的功能結(jié)合系統(tǒng)數(shù)據(jù)存儲方式選擇相關(guān)技術(shù)和平臺;3. 根據(jù)制定的開發(fā)方案總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)的精神,開發(fā)出相應(yīng)的應(yīng)用程序,并實(shí)現(xiàn)課題預(yù)期的功能和目標(biāo);37XX院本科畢業(yè)設(shè)計(jì)(論文) 2 相關(guān)開發(fā)技術(shù)和工具介紹 2 相關(guān)開發(fā)技術(shù)和工具介紹2.1 Windows應(yīng)用程序介紹Windows應(yīng)用程序又稱GUI(圖像用戶界面)應(yīng)用程序,它在我們計(jì)算機(jī)中無處不在,它在軟件開發(fā)歷史上曾風(fēng)靡一時(shí),且至今仍在眾多的系統(tǒng)開發(fā)中在占有一席之地。Windows應(yīng)用程序的設(shè)計(jì)一般采用C/S (Client/Server,客戶機(jī)/服務(wù)器)結(jié)構(gòu)進(jìn)行開發(fā)。C/S結(jié)構(gòu)是大家熟悉的軟件系統(tǒng)體系結(jié)構(gòu),它通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通信開銷,可以充分利用兩端硬件環(huán)境的優(yōu)勢。C/S結(jié)構(gòu)是相對現(xiàn)今的另一種開發(fā)模式B/S結(jié)構(gòu)而言,B/S機(jī)構(gòu)開發(fā)是隨著Internet的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面是通過客戶端瀏覽器來解析呈現(xiàn),其主要邏輯是在服務(wù)器端實(shí)現(xiàn)。在現(xiàn)今的開發(fā)模式中B/S結(jié)構(gòu)也有其自身的優(yōu)勢:它采用弱客戶端,客戶端僅需要一個(gè)瀏覽器解析完成,其它的實(shí)現(xiàn)一般采用服務(wù)器端動態(tài)技術(shù)。但是其相對C/S開發(fā)有很多的問題呈現(xiàn),如交互界面豐富性,安全問題等方面,所以至今C/S結(jié)構(gòu)在軟件開發(fā)中仍有不可取代的地位。在Windows應(yīng)用程序的開發(fā)技術(shù)平臺主要有C+的MFC開發(fā)、SUN公司的J2EE開發(fā)平臺上的GUI編程、VB與Delphi上的開發(fā)以及微軟的.NET平臺都提供了相應(yīng)的開發(fā)。這些技術(shù)各有所長,其中最出名的就是Delphi和.NET平臺的開發(fā)模式,它們都以快速開發(fā)而著稱,但VB語言的落后呈明顯趨勢,現(xiàn)今微軟在平臺系統(tǒng)上的優(yōu)勢和前沿的可復(fù)用性設(shè)計(jì),大大的推動了.NET技術(shù)的快速應(yīng)用。很多Windows應(yīng)用程序都采用了微軟的.NET技術(shù)來實(shí)現(xiàn)。2.2 .NET Framework簡介.NET Framework是Microsoft推出的新開發(fā)平臺,它簡化了各種軟件結(jié)構(gòu)的開發(fā),并在Visual Studio 這個(gè)強(qiáng)大的IDE配合下,加快了軟件系統(tǒng)開發(fā)的效率和縮短了軟件開發(fā)的周期。.NET Framework是支持生成和運(yùn)行下一代應(yīng)用程序和 XML Web services 的內(nèi)部 Windows 組件,它具有兩個(gè)主要組件:公共語言運(yùn)行庫(CLR)和.NET Framework類庫。CLR是.NET Framework的基礎(chǔ)。你可以將它的運(yùn)行庫看作一個(gè)在執(zhí)行時(shí)管理代碼的代理,它提供核心服務(wù)(如內(nèi)存管理、線程管理和遠(yuǎn)程處理),強(qiáng)制實(shí)施嚴(yán)格的類型安全以及可確保安全性和可靠性的多種形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行庫的基本原則。以運(yùn)行庫為目標(biāo)的代碼稱為托管代碼,.NET中絕大部分都屬于這類,而不以運(yùn)行庫為目標(biāo)的代碼稱為非托管代碼,如指針等。.NET Framework的另一個(gè)主要組件就是類庫,它是一個(gè)完全面向?qū)ο箢愋桶踩目蓮?fù)用類庫集合,我們可以使用它們來開發(fā)多種應(yīng)用程序,這些應(yīng)用程序既包括傳統(tǒng)的命令行(控制臺應(yīng)用程序)和圖形用戶界面 (GUI,即一般的Windows應(yīng)用程序)應(yīng)用程序,也可以進(jìn)行基于B/S的ASP.NET Web開發(fā)如Web Form 、ASP.NET MVC和 Web services等),以及Remote、WCF、WWF、WPF等微軟.NET的開發(fā)新技術(shù)新模式。.NET Framework可由非托管組件承載,這些組件將公共語言運(yùn)行庫加載到它們的進(jìn)程中并啟動托管代碼的執(zhí)行,從而創(chuàng)建一個(gè)可以同時(shí)利用托管和非托管功能的軟件環(huán)境。.NET Framework不但提供若干個(gè)運(yùn)行庫宿主,而且還支持第三方運(yùn)行庫宿主的開發(fā)。Microsoft于2005年推出了VS2005中集成了.NET Framework2.0,于.NET Framework1.0的基礎(chǔ)上增加了很多類庫,使其功能更強(qiáng)大,在2008和2010年分別推出的VS2008、VS2010中集成了.NET Framework3.5和.NET Framework4.0,更添加了多種開發(fā)新技術(shù)。使得.NET平臺更加的強(qiáng)大,并一步一步的加快軟件開發(fā)的開發(fā)效率,縮短軟件的開發(fā)周期2.3 ASP.NET的發(fā)展基礎(chǔ)隨著PHP,JSP的技術(shù)的出現(xiàn),ASP的王者地位受到了嚴(yán)峻的挑戰(zhàn)。JSP的技術(shù)在執(zhí)行效率,安全性等特性上已經(jīng)完全超過了ASP,同時(shí)還具有ASP所無法比擬的跨平臺性, JSP的誕生,使越來越多的人開始選擇它,ASP技術(shù)面臨前所未有的危機(jī)。 在這種情況下,Microsoft公司很快發(fā)布了其宏偉的“Windows.NET”計(jì)劃。ASP.NET不僅僅是下一版本的 Active Server Page (ASP);它是統(tǒng)一的Web 開發(fā)平臺,用來提供開發(fā)人員快速生成企業(yè)級 Web 應(yīng)用程序所需的服務(wù)。ASP.NET 的語法在很大程度上與 ASP 兼容,同時(shí)它還提供一種新的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應(yīng)用程序。可以通過在現(xiàn)有 ASP 應(yīng)用程序中逐漸添加 ASP.NET 功能,隨時(shí)增強(qiáng)該ASP 應(yīng)用程序的功能ASP.Net可完全利用.Net架構(gòu)的強(qiáng)大,安全,高效的平臺特性。ASP.Net是運(yùn)行在服務(wù)器后端編譯后的普通語言運(yùn)行時(shí)代碼,運(yùn)行時(shí)早綁定(Early Binding),即時(shí)編譯,本地優(yōu)化,緩存服務(wù),零安裝配置,基于運(yùn)行時(shí)代碼受管與驗(yàn)證的安全機(jī)制等都為ASP.Net帶來卓越的性能。 對XML,SOAP,WSDL等Internet標(biāo)準(zhǔn)的強(qiáng)健支持為ASP.Net在異構(gòu)網(wǎng)絡(luò)里提供了強(qiáng)大的擴(kuò)展性。ASP.NET是微軟力推的功能強(qiáng)大的編程環(huán)境,可以使用C#等多種高級語言及腳本語言、HTML、XML、XSL等來創(chuàng)建基于網(wǎng)絡(luò)的應(yīng)用程序。ASP.NET將C#作為一種面向?qū)ο笳Z言,在很多方面來看,C#將成為微軟的與Java相似的語言。 C#是ASP.NET開發(fā)中一個(gè)最重要的功能,微軟會將C#發(fā)展成為Java的強(qiáng)勁對手。這也是微軟.Net框架的一個(gè)重要組成部分。ASP.NET在面向?qū)ο笮浴?shù)據(jù)庫連接、大型站點(diǎn)應(yīng)用等方面都優(yōu)于ASP程序,ASP.NET還提供更多的其他方面的新特性,例如:內(nèi)置的對象緩存和頁面結(jié)果緩存;內(nèi)置的XML支持,可用于XML數(shù)據(jù)集的簡單處理;服務(wù)器控制提供了更充分的交互式制等。ASP.NET依然完全鎖定在微軟的操作系統(tǒng)中,要真正發(fā)揮ASP.NET潛力,你要使用C#或VB.net。這兩種語言將成為ASP.NET標(biāo)準(zhǔn)的核心的腳本語言。2.4 C#編程語言微軟宣布了它的最新編程語言C#是專門為.NET應(yīng)用而開發(fā)出的語言,這從根本上保證了C#與.NET框架的完美結(jié)合。在.NET運(yùn)行庫的支持下,.NET框架的各種優(yōu)點(diǎn)在C#中表現(xiàn)得淋漓盡致,這是一種面向?qū)ο蟮木幊陶Z言,它將作為Visual Studio中的一部分推出。C#(發(fā)音為“C-Sharp”)既保持了C+中熟悉的語法,并且還包含了大量的高效代碼和面向?qū)ο筇匦浴?jù)微軟產(chǎn)品經(jīng)理透露,C#語言將在保持C/C+靈活性的基礎(chǔ)上為程序員帶來更高效的RAD開發(fā)方式。它不僅能用于WEB服務(wù)程序的開發(fā),并且還能開發(fā)強(qiáng)大的系統(tǒng)級程序。 C#是一種簡潔且類型安全的面向?qū)ο笳Z言,開發(fā)人員可以用其來構(gòu)建在.NET Framework平臺上運(yùn)行的編程語言,用其可以創(chuàng)建在.NET Framework上運(yùn)行的多種應(yīng)用程序。使用C#可以創(chuàng)建傳統(tǒng)的Windows客戶端應(yīng)用程序、XML Web service、分布式組件、客戶端/服務(wù)器應(yīng)用程序等。C#還包含使XML編程更為輕松的技術(shù)。微軟將使它的下一代工具軟件、操作系統(tǒng)和應(yīng)用支持XML技術(shù)。 C#的一些突出的特點(diǎn), 簡潔的語法精心地面向?qū)ο笤O(shè)計(jì)與Web的緊密結(jié)合完整的安全性與錯(cuò)誤處理版本處理技術(shù)靈活性與兼容性安全性。正是由于其靈活性,C#允許與C風(fēng)格的需要傳遞指針型參數(shù)的API進(jìn)行交互操作,DLL的任何入口點(diǎn)都可以在程序中進(jìn)行訪問。C#遵守.NET公用語言規(guī)范(Common Language Specification, CLS),從而保證了C#組件與其它語言組件間的互操作性。元數(shù)據(jù)(Metadata)概念的引入既保證了兼容性,又實(shí)現(xiàn)了類型安全。2.5 開發(fā)平臺Visual Studio 2005、IIS 5.1服務(wù)器、.NET Framework 2.0 圖 2.1 VS2005開發(fā)工具界面2.6 通信協(xié)議HTTP協(xié)議(超文本傳輸協(xié)議)的主要特點(diǎn)可概括如下:(1)簡單快速:客戶向服務(wù)器請求服務(wù)時(shí),只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。(2)由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。(3)靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。 (4)無連接:無連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。 (5)無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。另外,在實(shí)驗(yàn)中發(fā)現(xiàn)很多網(wǎng)絡(luò)都設(shè)置了防火墻,考慮到安全問題,網(wǎng)絡(luò)管理員會屏蔽很多端口。而對于HTTP最常用的80端口通常是開放的,這也是選擇HTTP協(xié)議的一個(gè)重要因素。2.7 相關(guān)知識2.7.1 委派委派是C#引入的一種新的數(shù)據(jù)類型,它非常類似于C/C+中的函數(shù)指針,常常用于在編譯時(shí)未綁定的動態(tài)方法調(diào)用。與函數(shù)指針不同的是委派在C中完全實(shí)現(xiàn)了面向?qū)ο螅瓤梢砸渺o態(tài)方法,也可以引用實(shí)例方法,而函數(shù)指針只能引用靜態(tài)方法。C#中的委派同時(shí)也是類型安全的。 作為一種面向?qū)ο蟮臄?shù)據(jù)類型,委派的使用分為三步:委派聲明,委派實(shí)例化和委派調(diào)用。委派聲明就是定義一個(gè)封裝特定參數(shù)類型和返回值類型的方法體(靜態(tài)方法或?qū)嵗椒ǎ┑臄?shù)據(jù)類型,看下面的示例: delegate int Compute (int left, int right); 可以看到,委派類型Compute包含了方法的兩個(gè)要素: 參數(shù)類型和返回值類型。委派類型和方法只有滿足下面兩個(gè)條件,才能說它們是兼容的: 1 參數(shù)的數(shù)量相同,并且它們的類型也按順序相同; 2 返回值相同。 委派類型相同指的是它們聲明的類型為同一類型(名字一樣)。而委派實(shí)例相等則是指它們綁定的方法為同一個(gè)方法,或相同的方法按相同的順序組成的方法鏈,而它們本身的類型只要兼容即可(同樣滿足上面兩個(gè)條件),不必強(qiáng)求同名。 委派實(shí)例化就是將委派類型綁定到特定方法的過程,和其他對象的實(shí)例化相似,都需要用new語句,只是必須接受和該委派類型兼容的方法名作為new語句的參數(shù)。如果是實(shí)例方法,必須采用兩者中間加點(diǎn)號的方式同時(shí)提供實(shí)例對象和方法。 委派實(shí)例化后就可以像調(diào)用方法一樣進(jìn)行委派調(diào)用了。委托是一個(gè)類,它定義了方法的類型,使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來進(jìn)行傳遞,這種將方法動態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時(shí)使得程序具有更好的可擴(kuò)展性。2.7.2 事件事件是一種使對象或類能夠提供通知的成員,類或?qū)ο罂梢酝ㄟ^事件為其他類或?qū)ο笸ㄖl(fā)生的相關(guān)事情,客戶端則可以通過提供事件處理程序?yàn)橄鄳?yīng)的事件添加可執(zhí)行代碼。事件是對象發(fā)送的消息,已發(fā)信號通知操作的發(fā)生。而操作可能由用戶交互(例如鍵盤或鼠標(biāo)操作)引起的,也可能由某些系統(tǒng)行為或其他邏輯觸發(fā)。發(fā)送或引發(fā)事件的對象稱為“發(fā)行者”,接收事件并對其作出響應(yīng)的對象稱為“訂閱者”。委派事件的基礎(chǔ),在事件通信中時(shí)間發(fā)行者并不知道哪個(gè)對象或方法將接收并處理由其引發(fā)的事件,委派就是事件發(fā)送發(fā)和接收方之間的紐帶。事件處理程序本身都是方法成員,事件處理程序的唯一限制是其必須與事件所要求的委托簽名匹配,也包括返回類型和參數(shù)。這個(gè)簽名是事件定義的一部分,可以通過一個(gè)委托類型來指定。下面的示例聲明了名為“EventName”的公共事件,其委托類型為EventNameEventHandler;Public event EventNameEventHandler EventName;示例: public delegate void ShowHandler(); /聲明一個(gè)公共的委托類public event ShowHandler OnShow; /聲明一個(gè)事件2.7.3 線程在Windows Task Manager 窗口中,還包含了進(jìn)程使用的CPU的情況。這是因?yàn)檫M(jìn)程也有一個(gè)由計(jì)算機(jī)的處理器使用的執(zhí)行次序。這個(gè)執(zhí)行次序就稱為線程。每個(gè)進(jìn)程至少有一個(gè)執(zhí)行順序或線程。線程的執(zhí)行順序是由應(yīng)用程序的方法代碼來決定的。跟準(zhǔn)確地講,線程其實(shí)是指向進(jìn)程的指令流部分的一個(gè)指針。線程實(shí)際上不包括指令,只是指出了當(dāng)前和將來可能要使用的路徑,而這是通過數(shù)據(jù)和分支判斷決定的指令來完成的。.NET Framework 支持自由線程,所以在所有的.NET語言中都可以使用自由線程。使用線程之前一定記住先添加引用using.System.Threading;示例: /從當(dāng)前線程調(diào)用方法 SimpleThread st = new SimpleThread(); st.SimpleMethod(); /從其他線程調(diào)用方法 ThreadStart ts = new ThreadStart(st.SimpleMethod); Thread t = new Thread(ts); /Thread t = new Thread(new ThreadStart(st.SimpleMethod); t.Start();2.7.4 泛型泛型是2.0版C#語言和公共運(yùn)行庫(CLR)中新增加的一項(xiàng)新功能,使用泛型類型可以最大限度地重用代碼、保護(hù)類型的安全和提高。使用泛型可以參數(shù)化代碼,然后在使用的時(shí)候,填充具體的類型參數(shù),該參數(shù)是泛型類型要操作的對象類型。常見的場景是使用泛型列表,如下所示:var letters = new List<string>()letters.Add(“Alpha”);letters.Add(“Beta”);letters.Add(“Charlie”);foreach(var letter in letters) Console.Writeline(letter);在前面的代碼中,letters 是泛型的字符串列表。注意這個(gè)尖括號,它指定字符串類型,new List<string>()用來實(shí)例化letters.List的文檔說明它是參數(shù)化類型,被定義為List <T>,這里的T是類型參數(shù),它意味著你可以使用任何類型替換T,而且List可以操作這個(gè)類型。Dictionary<TKey,TValue>類Dictionary<TKey,TValue>類泛型類是表示鍵和值的集合(類型參數(shù)TKey和TValue分別表示鍵和值的類型)該集合稱為“字典”,其中的每個(gè)添加項(xiàng)都由一個(gè)值及相關(guān)的鍵組成。Dictionary<TKey,TValue>類泛型類提供了一組鍵到一組值的映射,由于該類作為一個(gè)哈希表來實(shí)現(xiàn),因此通過鍵來檢索值的速度非常快。2.7.5 裝箱與拆箱1、裝箱和拆箱是一個(gè)抽象的概念 2、裝箱是將值類型轉(zhuǎn)換為引用類型 ;拆箱是將引用類型轉(zhuǎn)換為值類型 利用裝箱和拆箱功能,可通過允許值類型的任何值與Object 類型的值相互轉(zhuǎn)換,將值類型與引用類型鏈接起來 例如: int val = 100; object obj = val; Console.WriteLine (“對象的值 = 0", obj); 這是一個(gè)裝箱的過程,是將值類型轉(zhuǎn)換為引用類型的過程 int val = 100; object obj = val; int num = (int) obj; Console.WriteLine ("num: 0", num); 這是一個(gè)拆箱的過程,是將值類型轉(zhuǎn)換為引用類型,再由引用類型轉(zhuǎn)換為值類型的過程 XX院本科畢業(yè)設(shè)計(jì)(論文) 5 系統(tǒng)實(shí)現(xiàn)3 需求分析3.1 應(yīng)用需求分析如今計(jì)算機(jī)軟件技術(shù)的發(fā)展已到了一個(gè)較高水平,許多傳統(tǒng)行業(yè)和新興行業(yè)如電子商務(wù)等的發(fā)展已離不開計(jì)算機(jī)軟件技術(shù)的支撐,它們都在不同程度和不同形式的利用計(jì)算機(jī)實(shí)現(xiàn)各種的自動化、機(jī)器化,不再是人工手動管理。尤其是Internet的飛速發(fā)展,將整個(gè)世界聯(lián)系在一起,信息廣泛的在Internet上快速的傳播,信息的變化日新月異,再不斷的飛速膨脹,信息的變化對于企業(yè)的影響也越來越大,信息的收集已經(jīng)不再是人工方式,決策的制定也變得越來越復(fù)雜,導(dǎo)致軟件出來了大型的管理系統(tǒng)ERP,并影響著軟件的發(fā)展,推動著軟件技術(shù)的更新。信息時(shí)代,人們的工作生活依賴于眾多軟件,大多數(shù)軟件處于軟件測試和發(fā)布初期,升級的改動是非常頻繁的。如果依靠傳統(tǒng)的維護(hù)方式軟件維護(hù)人員挨個(gè)去給每臺機(jī)器上的軟件做升級維護(hù),在機(jī)子數(shù)量較少的情況下,一兩個(gè)維護(hù)人員就可以應(yīng)付,但如果客戶端用戶數(shù)量成百上千且比較分散,這種情況下采用傳統(tǒng)的升級維護(hù)方式幾乎是不可能完成的。針對這種情況,各個(gè)C/S模式的軟件紛紛將自己的軟件維護(hù)改為自動升級以適應(yīng)現(xiàn)實(shí)的需求。自動更新的時(shí)候,客戶端軟件提交更新請求給固定的網(wǎng)址,然后網(wǎng)址返回最新版本的版本號。客戶端軟件和自己的版本號對比,如果發(fā)現(xiàn)服務(wù)器的版本和自己的版本不一樣,那么就請求下載升級補(bǔ)丁。服務(wù)器響應(yīng)請求,提供補(bǔ)丁下載;下載成功后,手動或自動安裝一下就可以了。安裝補(bǔ)丁的時(shí)候,客戶端的主程序一般是要關(guān)閉的,除非采用動態(tài)卸載、調(diào)入組件的技術(shù),比如網(wǎng)絡(luò)游戲,就是盡量讓玩家邊玩游戲邊更新。如果更新的是主程序,那么就必須關(guān)閉主程序了??墒侵鞒绦蜿P(guān)閉了之后,誰來調(diào)用安裝補(bǔ)丁呢?為了解決這個(gè)問題,人們把主程序和自動更新程序分開來做。當(dāng)需要校驗(yàn)版本的時(shí)候,主程序調(diào)用自動更新程序。自動更新程序如果發(fā)現(xiàn)主程序需要更新,在下載了升級補(bǔ)丁之后,就會要求關(guān)閉主程序。主程序關(guān)閉之后,自動更新程序調(diào)用升級補(bǔ)丁進(jìn)行安裝,安裝完成后再重新啟動主程序。自動更新程序自動退出,完成更新任務(wù)。這和你關(guān)閉電腦后再插網(wǎng)卡的原理是一模一樣的。其實(shí)生活中有很多現(xiàn)象可以借鑒到軟件設(shè)計(jì)中。人們嫌這樣的升級仍然太麻煩,后來出現(xiàn)了B/S結(jié)構(gòu),大家像抓住了救命稻草一樣的追捧至今,希望能從這些勞動中解脫出來。B/S結(jié)構(gòu)就是瀏覽器/服務(wù)器結(jié)構(gòu),它所有的功能,都是在瀏覽器里完成。程序升級的時(shí)候,只需要在服務(wù)端升級一下就可以了,瀏覽器再次訪問服務(wù)器的時(shí)候,得到的就是新版本。你可以把它理解成一個(gè)純粹的網(wǎng)站。是不是站長更新的時(shí)候,你打開網(wǎng)站就看到最新的頁面?但是B/S結(jié)構(gòu)有天生的弱點(diǎn),因?yàn)樗腔诰W(wǎng)頁瀏覽的,所以安全性是首要的難題,你能瀏覽的東西,原則上別人也能瀏覽。而且出于安全考慮,B/S訪問本地資源,比如串口,必須借助于其他技術(shù)實(shí)現(xiàn)。B/S也不是萬能的,必須考慮實(shí)際應(yīng)用。Winform程序相對web程序而言,功能更強(qiáng)大,編程更方便,但軟件更新卻相當(dāng)麻煩,要到客戶端一臺一臺的升級,面對這個(gè)實(shí)際問題,設(shè)計(jì)了一個(gè)通過軟件實(shí)現(xiàn)自動升級技術(shù)方案,彌補(bǔ)了這一缺陷。3.2 系統(tǒng)功能需求即便擁有多年軟件開發(fā)經(jīng)驗(yàn)的團(tuán)隊(duì)也不會保證自己所做的軟件是完美的,它或多或少會存在一些缺陷,甚至?xí)嬖谥T多的漏洞。在軟件的使用中,也會不斷發(fā)現(xiàn)更多的問題,這些問題可能是軟件本省的問題,也可能是運(yùn)行的軟硬環(huán)境變化造成的,而且用戶也會對軟件不斷地提出新的要求。所以,軟件的升級是不可避免的。對于用戶而言,軟件升級可以修補(bǔ)漏洞,確保數(shù)據(jù)安全;可以更新和增加新功能。對于軟件開發(fā)上而言,為了滿足市場需求,也需要不斷地升級自己的軟件,力求做得更好。對于用戶和軟件管理員,他們希望自己管理的軟件具有自動更新功能,這樣會減少更多的維護(hù)成本。為了滿足這些要求,本課題試圖尋求一種比較通用的自動升級平臺。由于采用C/S結(jié)構(gòu),客戶端經(jīng)常需要更新,軟件更新的實(shí)質(zhì)上是在客戶端和服務(wù)器之間進(jìn)行通信和傳遞數(shù)據(jù)。程序更新時(shí),自動升級的形式有:一是開機(jī)后自動隱藏運(yùn)行,這種方式的技術(shù)成本較高,要求高可靠性和可用性;二是在啟動程序時(shí)運(yùn)行,一般設(shè)計(jì)為強(qiáng)制更新,這種方式要求升級速度要快;三是用戶手動點(diǎn)擊功能菜單運(yùn)行,把升級文件放在共享文件夾中,由用戶承擔(dān)升級任務(wù);最后是綜合以上三種方式的兩種或三種并存。3.2.1系統(tǒng)主要功能分析本應(yīng)用系統(tǒng)自動升級實(shí)踐課題是針對于C/S結(jié)構(gòu)的Windows應(yīng)用系統(tǒng)的開發(fā)。采用微軟Microsoft Visual Studio IDE開發(fā)工具,使用.NET框架的C#語言進(jìn)行實(shí)踐課題的開發(fā)設(shè)計(jì)。本課題需要完成的課題實(shí)踐內(nèi)容,如下:1、 軟件升級的實(shí)現(xiàn)原理2、 選擇一種具體實(shí)現(xiàn)方式3、 軟件升級系統(tǒng)模型設(shè)計(jì)4、 編碼實(shí)現(xiàn)3.2.2自動升級原理圖圖3.1自動升級原理圖4 系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)思想要深入理解.NET客戶端應(yīng)用程序更新組件的工作原理,需要仔細(xì)研究一下實(shí)現(xiàn)客戶端應(yīng)用程序更新有那些必須要做的事情。第一步需要做的是檢查是否有更新;當(dāng)發(fā)現(xiàn)有更新時(shí),開始第二步工作下載更新;當(dāng)更新下載完成時(shí),進(jìn)行最后一步的工作實(shí)現(xiàn)更新。(一) 為更新做檢查作為開發(fā)者,首先你得告訴應(yīng)用程序到什么地方去做更新檢查,就是所謂定位。其次,確定何時(shí)做更新檢查。不可能用戶每次一運(yùn)行客戶端程序,而它就在后臺不停的進(jìn)行更新檢查,那多浪費(fèi)資源!最后還有一項(xiàng)重要的事情需要解決,那就是如何進(jìn)行更新檢查。.NET應(yīng)用程序更新組件使用HTTP進(jìn)行通訊,這就允許客戶端應(yīng)用程序穿透防火墻來進(jìn)行更新。并且進(jìn)行更新檢查所需要的地址就成了已知的Web服務(wù)器的一個(gè)URL地址,第一個(gè)問題順利解決。.NET應(yīng)用程序更新組件在組件生成的基礎(chǔ)上產(chǎn)生一個(gè)線程,該線程負(fù)責(zé)進(jìn)行更新檢查。該線程在大多數(shù)時(shí)間處于休眠狀態(tài),但會在設(shè)置好的間隔蘇醒并實(shí)現(xiàn)一次更新檢查。應(yīng)用程序?yàn)樾碌母滤龅臋z查的頻率依賴于各應(yīng)用自身。進(jìn)行更新檢查的間隔常用值的范圍一般是從一個(gè)小時(shí)到幾天。這種輪詢的基本方法并不適合于所有情況。比如Microsoft Money只是在用戶讓它去進(jìn)行更新檢查時(shí)它才去檢查。在這種情況下,更新輪詢線程可被禁用。通過用命令調(diào)用更新組件的CheckForUpdate()方法來實(shí)現(xiàn)更新檢查。關(guān)于如何進(jìn)行更新檢查的方法有這樣幾種:方法一:直接文件檢查使用HTTP來比較服務(wù)器和客戶端應(yīng)用程序的最后的修改日期/時(shí)間戳是否一致。如果服務(wù)器上有更新的文件,客戶端就知道可以更新自己了。對于Web瀏覽器來講,也是同樣的道理,它知道是否需要重新下載一個(gè)html頁面或圖片或是否可以重復(fù)使用先前已下載的。當(dāng)應(yīng)用程序有一個(gè)新的版本可用時(shí),管理員簡單地拷貝一個(gè)更新的版本來覆蓋Web服務(wù)器上的舊版本。這種方法的問題在于更新不是自動進(jìn)行,由此會出現(xiàn)潛在的失敗可能。比如,如果管理員正在更新Web服務(wù)器上的應(yīng)用程序版本,同時(shí)有個(gè)客戶正在下載更新之前的版本,那么這個(gè)客戶的計(jì)算機(jī)上就會既存在更新之前的一些文件,也存在更新之后新版本的一些文件。基于上述原因,對于重要的應(yīng)用程序不提倡使用直接文件檢查來更新。

注意事項(xiàng)

本文(應(yīng)用系統(tǒng)自動升級 畢業(yè)設(shè)計(jì)論文)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!