版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、深入體驗(yàn)C#項(xiàng)目開發(fā)第2章 在線留言簿系統(tǒng) PAGE 74 PAGE 75 第第2章在線留言言簿系統(tǒng)統(tǒng) 當(dāng)今網(wǎng)絡(luò)絡(luò)應(yīng)用隨隨處可見見,QQQ、MSSN、博博客、微微博、留留言板、論壇隨著著熱門生生活節(jié)奏奏的加快快,人們們將更多多地使用用網(wǎng)絡(luò)進(jìn)進(jìn)行交流流,而作作為交流流方式之之一的在在線留言言簿系統(tǒng)統(tǒng)更是深深受人們們的青睞睞。通過過在線留留言簿系系統(tǒng),可可以實(shí)現(xiàn)現(xiàn)身處世世界各地地的人們們的在線線交流。本章將講講解在線線留言簿簿系統(tǒng)的的運(yùn)行流流程,并并通過具具體的實(shí)實(shí)例來講講解其具具體的實(shí)實(shí)現(xiàn)過程程。2.1 第一一個(gè)盈利利項(xiàng)目無論你是是一位IIT菜鳥鳥,還是是職場(chǎng)中中的程序序高手,只要從從事ITT這
2、一行行業(yè),就就會(huì)發(fā)現(xiàn)現(xiàn)這行很很容易攬攬到私活活。我在在學(xué)生時(shí)時(shí)代就給給一些公公司干過過網(wǎng)頁設(shè)設(shè)計(jì)、圖圖像處理理等一些些兼職,當(dāng)然是是給他們們做下手手。自從從學(xué)習(xí)程程序之后后,我就就一直想想著做一一個(gè)真正正的項(xiàng)目目,不但但能賺到到錢,而而且還能能讓我的的產(chǎn)品能能被客戶戶所使用用?,F(xiàn)在在回憶起起來,我我做的第第一個(gè)真真正的盈盈利項(xiàng)目目應(yīng)該是是大四那那年的在在線留言言簿系統(tǒng)統(tǒng)。2.1.1 不速之之客20055年122月1日日,大雪雪紛飛 風(fēng)流倜儻儻的學(xué)生生會(huì)主席席CH來來到了我我們的宿宿舍。他他的來意意十分明明確,學(xué)學(xué)校官方方網(wǎng)站準(zhǔn)準(zhǔn)備升級(jí)級(jí),要增增加一個(gè)個(gè)在線留留言簿系系統(tǒng)供學(xué)學(xué)生使用用。學(xué)校校想
3、讓學(xué)學(xué)生來完完成這個(gè)個(gè)升級(jí)工工作,這這樣不但但節(jié)約開開支,而而且可以以檢驗(yàn)學(xué)學(xué)生的實(shí)實(shí)踐能力力。CHH在得到到這個(gè)消消息后,第一時(shí)時(shí)間想到到了我們們宿舍,因?yàn)槿A華東區(qū)大大學(xué)生計(jì)計(jì)算機(jī)競(jìng)競(jìng)賽團(tuán)體體一等獎(jiǎng)獎(jiǎng)來自我我們宿舍舍。有了學(xué)生生會(huì)主席席的大力力舉薦,加上我我們的實(shí)實(shí)力,這這個(gè)項(xiàng)目目就很自自然地被被我們拿拿下了。2.1.2 組建團(tuán)團(tuán)隊(duì)20055年122月2日日,小雪雪飄飄雖然項(xiàng)目目不大,我們還還是組建建了一個(gè)個(gè)小團(tuán)隊(duì)隊(duì),團(tuán)隊(duì)隊(duì)成員如如下。舍友A:一個(gè)來自自偏遠(yuǎn)山山區(qū)的孩孩子,家家庭貧困困??赡苣芤?yàn)榧壹彝サ脑颍峥釔蹖W(xué)習(xí)習(xí),快成成學(xué)習(xí)超超人了。僅有的的零花錢錢全都買買了輔導(dǎo)導(dǎo)書:PPHP、
4、Javva、AASP、Phootosshopp、Drreammweaaverr、C+、FFlassh。最最大優(yōu)點(diǎn)點(diǎn)是啥都都懂,缺缺點(diǎn)是啥啥都不精精通。項(xiàng)項(xiàng)目的核核心編碼碼他是不不能勝任任了,但但是其策策劃經(jīng)驗(yàn)驗(yàn)是最好好的。任務(wù):負(fù)負(fù)責(zé)項(xiàng)目目規(guī)劃,撰寫系系統(tǒng)設(shè)計(jì)計(jì)規(guī)劃書書。舍友B:父母是做做生意的的,最大大的特點(diǎn)點(diǎn)是有錢錢,大學(xué)學(xué)四年花花錢如流流水。從從小酷愛愛編程,在C語語言和數(shù)數(shù)據(jù)庫領(lǐng)領(lǐng)域有頗頗深的造造詣。任務(wù):負(fù)負(fù)責(zé)文件件概覽工工作。舍友C:一個(gè)運(yùn)動(dòng)動(dòng)狂人,喜歡驚驚險(xiǎn)刺激激的戶外外運(yùn)動(dòng),每天早早晨去操操場(chǎng)跑馬馬拉松,冬天穿穿短褲上上街,從從不生病病,目標(biāo)標(biāo)是攀登登珠峰。任務(wù):負(fù)負(fù)責(zé)搭建建并
5、設(shè)計(jì)計(jì)數(shù)據(jù)庫庫。舍友D:一個(gè)普通通城市家家庭的孩孩子,戴戴著一副副眼鏡,文質(zhì)彬彬彬。此此人十分分聰明,屬于一一看就會(huì)會(huì)的類型型,所以以學(xué)習(xí)成成績(jī)很好好。課余余愛好廣廣泛,喜喜歡看足足球、踢踢足球。任務(wù):負(fù)負(fù)責(zé)留言言系統(tǒng)的的編碼工工作。我:目前還沒沒有出人人頭地,充其量量是ITT界一只只待飛的的小鳥。任務(wù):負(fù)負(fù)責(zé)系統(tǒng)統(tǒng)整體框框架設(shè)計(jì)計(jì),協(xié)調(diào)調(diào)項(xiàng)目中中各個(gè)模模塊的進(jìn)進(jìn)展,并并設(shè)計(jì)數(shù)數(shù)據(jù)庫訪訪問層。具體職能能結(jié)構(gòu)如如圖2-1所示示。圖2-11 職職能結(jié)構(gòu)構(gòu)圖整個(gè)項(xiàng)目目的具體體操作流流程是:項(xiàng)目規(guī)規(guī)劃文件概概覽搭建數(shù)數(shù)據(jù)庫設(shè)計(jì)數(shù)數(shù)據(jù)庫訪訪問層編碼實(shí)實(shí)現(xiàn)。2.1.3 小會(huì)議議20055年122月3日日,
6、晴今天我們們召開了了一個(gè)動(dòng)動(dòng)員會(huì)議議,并為為未來項(xiàng)項(xiàng)目的進(jìn)進(jìn)展做了了一個(gè)簡(jiǎn)簡(jiǎn)單的規(guī)規(guī)劃。我我們一致致認(rèn)為:本項(xiàng)目目包括后后臺(tái)數(shù)據(jù)據(jù)庫的建建立、維維護(hù)以及及前端應(yīng)應(yīng)用程序序的開發(fā)發(fā)兩個(gè)方方面。應(yīng)應(yīng)用程序序的開發(fā)發(fā)采用目目前比較較流行的的ADOO數(shù)據(jù)庫庫訪問技技術(shù),并并將每個(gè)個(gè)數(shù)據(jù)庫庫表的字字段和操操作封裝裝到相應(yīng)應(yīng)的類中中,使應(yīng)應(yīng)用程序序的各個(gè)個(gè)窗體都都能夠共共享對(duì)表表的操作作,而不不需要重重復(fù)編碼碼,使程程序更加加易于維維護(hù),從從而將面面向?qū)ο笙蟮某绦蛐蛟O(shè)計(jì)思思想成功功地應(yīng)用用于應(yīng)用用程序設(shè)設(shè)計(jì)中,這也是是本系統(tǒng)統(tǒng)的優(yōu)勢(shì)勢(shì)和特色色,具體體流程如如圖2-2所示示。圖2-22 實(shí)實(shí)現(xiàn)流程程最后我做
7、做了一個(gè)個(gè)簡(jiǎn)單的的總結(jié):“要開發(fā)發(fā)一個(gè)在在線留言言簿系統(tǒng)統(tǒng),首先先需要進(jìn)進(jìn)行系統(tǒng)統(tǒng)需求分分析和總總體設(shè)計(jì)計(jì),分析析系統(tǒng)的的使用對(duì)對(duì)象和用用戶需求求,設(shè)計(jì)計(jì)系統(tǒng)的的體系結(jié)結(jié)構(gòu)和數(shù)數(shù)據(jù)庫表表結(jié)構(gòu),決定使使用的開開發(fā)工具具和后臺(tái)臺(tái)數(shù)據(jù)庫庫,規(guī)劃劃項(xiàng)目的的開發(fā)進(jìn)進(jìn)度等。”大家一致致提議:A盡快快作出規(guī)規(guī)劃書,后續(xù)工工作將以以規(guī)劃書書為基礎(chǔ)礎(chǔ)進(jìn)行擴(kuò)擴(kuò)展。20055年122月144日,晴晴空萬里里系統(tǒng)規(guī)劃劃是一個(gè)個(gè)項(xiàng)目的的基礎(chǔ),是任何何項(xiàng)目的的第一步步工作。原來我我做項(xiàng)目目時(shí),往往往看到到功能之之后就忙忙不迭地地新建工工程,并并進(jìn)行編編碼。但但是總是是忽略了了這樣或或那樣的的要求,到最后后需要經(jīng)經(jīng)過多次次
8、修改,造成了了欲速則則不達(dá)。這次我我吸取了了以前的的教訓(xùn),在前期期階段就就進(jìn)行了了一絲不不茍的分分析。2.2 系統(tǒng)統(tǒng)概述和和總體設(shè)設(shè)計(jì)20055年122月5日日,上午午,陽光光明媚會(huì)議完成成后,整整個(gè)團(tuán)隊(duì)隊(duì)就興奮奮地馬上上開始了了具體工工作。今今天一大大早,AA就做出出了項(xiàng)目目規(guī)劃書書。整個(gè)個(gè)規(guī)劃書書分為兩兩個(gè)部分分,分別別是在線線留言簿簿模塊功功能原理理和在線線留言簿簿系統(tǒng)構(gòu)構(gòu)成模塊塊。20055年122月5日日,下午午按照預(yù)先先分配的的任務(wù),由A負(fù)負(fù)責(zé)系統(tǒng)統(tǒng)概述和和總體設(shè)設(shè)計(jì),這這是我們們整個(gè)項(xiàng)項(xiàng)目的第第一步,能不能能打響第第一槍就就靠他了了。我深深知A向向來做事事比較拖拖沓,所所以一開開
9、始就宣宣稱會(huì)一一直緊盯盯著他不不放。他他無奈之之下,只只好抽出出一段時(shí)時(shí)間將任任務(wù)完成成了。2.2.1 在線留留言簿模模塊功能能原理Web站站點(diǎn)的在在線留言言簿系統(tǒng)統(tǒng)的實(shí)現(xiàn)現(xiàn)原理比比較清晰晰明了,其主要要操作是是對(duì)數(shù)據(jù)據(jù)庫數(shù)據(jù)據(jù)進(jìn)行添添加和刪刪除操作作。在其其實(shí)現(xiàn)過過程中,往往是是根據(jù)系系統(tǒng)的需需求而進(jìn)進(jìn)行不同同功能模模塊的設(shè)設(shè)置。在在線留言言簿模塊塊的必備備功能如如下。(1) 提供信信息發(fā)布布表單供供用戶發(fā)發(fā)布新的的留言。(2) 將用戶戶發(fā)布的的留言添添加到系系統(tǒng)庫中中。(3) 在頁面面內(nèi)顯示示系統(tǒng)庫庫中的留留言數(shù)據(jù)據(jù)。(4) 對(duì)某條條留言數(shù)數(shù)據(jù)進(jìn)行行在線回回復(fù)。(5) 刪除系系統(tǒng)內(nèi)不不需要
10、的的留言。2.2.2 在線留留言簿系系統(tǒng)構(gòu)成成模塊一個(gè)典型型的在線線留言簿簿系統(tǒng)構(gòu)構(gòu)成模塊塊如下。信息發(fā)表表模塊:用戶可可以在系系統(tǒng)上發(fā)發(fā)布新的的留言信信息。信息顯示示模塊:用戶發(fā)發(fā)布的留留言信息息能夠在在系統(tǒng)上上顯示。留言回復(fù)復(fù)模塊:可以對(duì)對(duì)用戶發(fā)發(fā)布的留留言進(jìn)行行回復(fù),以實(shí)現(xiàn)現(xiàn)相互間間的交互互。系統(tǒng)管理理模塊:站點(diǎn)管管理員能能夠?qū)Πl(fā)發(fā)布的信信息進(jìn)行行管理控控制。上述應(yīng)用用模塊的的具體運(yùn)運(yùn)行流程程如圖22-3所所示。圖2-33 在線線留言簿簿系統(tǒng)運(yùn)運(yùn)行流程程圖通過前面面的介紹紹,讀者者可初步步了解在在線留言言簿模塊塊的原理理和具體體的運(yùn)行行流程。在接下下來的內(nèi)內(nèi)容中,將通過過一個(gè)具具體的在在
11、線留言言簿模塊塊實(shí)例,向讀者者講解一一個(gè)典型型在線留留言簿系系統(tǒng)的具具體設(shè)計(jì)計(jì)流程。20055年122月7日日,上午午,晴空空萬里歷時(shí)兩天天,A的的系統(tǒng)規(guī)規(guī)劃工作作大功告告成,有有了這個(gè)個(gè)規(guī)劃書書,以后后的工作作就有目目的性了了。接下下來,需需要B馬馬上規(guī)劃劃出系統(tǒng)統(tǒng)所需的的項(xiàng)目文文件,為為后期的的編碼工工作做好好準(zhǔn)備。2.3 規(guī)劃劃系統(tǒng)文文件20055年122月7日日,下午午,雪花花飄飄經(jīng)過前面面兩天的的忙碌,總算有有了一點(diǎn)點(diǎn)成果。經(jīng)過總總體構(gòu)成成模塊分分析后,接下來來就可以以根據(jù)各各構(gòu)成功功能模塊塊來規(guī)劃劃系統(tǒng)實(shí)實(shí)現(xiàn)文件件了。規(guī)規(guī)劃項(xiàng)目目文件的的工作由由B來完完成,一一下午的的時(shí)間他他就在
12、VVisuual Stuudioo 20005中中規(guī)劃好好了項(xiàng)目目文件。2.3.1 規(guī)劃文文件20055年122月8日日,上午午,陽光光明媚今天是個(gè)個(gè)好天氣氣,我的的心情也也充滿了了期待。在這個(gè)個(gè)美好的的日子里里,B在在網(wǎng)上光光顧了很很多留言言簿系統(tǒng)統(tǒng),并且且發(fā)表了了多個(gè)留留言信息息。根據(jù)據(jù)總結(jié)的的模塊功功能和規(guī)規(guī)劃的結(jié)結(jié)構(gòu)圖,B規(guī)劃劃出了整整個(gè)項(xiàng)目目的實(shí)現(xiàn)現(xiàn)文件,具體說說明如下下。系統(tǒng)配置置文件:功能是是對(duì)項(xiàng)目目程序進(jìn)進(jìn)行總體體配置。樣式設(shè)置置模塊:功能是是設(shè)置系系統(tǒng)文件件的顯示示樣式。數(shù)據(jù)庫文文件:功功能是搭搭建系統(tǒng)統(tǒng)數(shù)據(jù)庫庫平臺(tái),保存系系統(tǒng)的登登錄數(shù)據(jù)據(jù)。留言簿列列表文件件:功能能是將系
13、系統(tǒng)內(nèi)的的留言信信息以列列表樣式式顯示出出來。發(fā)布留言言模塊:功能是是向系統(tǒng)統(tǒng)內(nèi)添加加新的留留言數(shù)據(jù)據(jù)。留言管理理頁面:功能是是刪除系系統(tǒng)內(nèi)部部需要的的留言數(shù)數(shù)據(jù)。2.3.2 選擇我我的武器器20055年122月8日日,下午午,工具具的困惑惑在此,BB準(zhǔn)備使使用當(dāng)前前最新的的Vissuall Sttudiio 220055,預(yù)期期規(guī)劃的的各個(gè)文文件在VVisuual Stuudioo 20005解解決方案案資源管管理器中中的效果果如圖22-4所所示。圖2-44 預(yù)預(yù)期規(guī)劃劃的項(xiàng)目目文件2.4 數(shù)據(jù)據(jù)庫設(shè)計(jì)計(jì)本項(xiàng)目系系統(tǒng)的開開發(fā)主要要包括后后臺(tái)數(shù)據(jù)據(jù)庫的建建立、維維護(hù)以及及前端應(yīng)應(yīng)用程序序的開發(fā)
14、發(fā)兩個(gè)方方面。數(shù)數(shù)據(jù)庫設(shè)設(shè)計(jì)是在在線留言言簿系統(tǒng)統(tǒng)設(shè)計(jì)開開發(fā)的一一個(gè)重要要組成部部分。2.4.1 后臺(tái)數(shù)數(shù)據(jù)庫及及數(shù)據(jù)庫庫訪問接接口的選選擇20055年122月9日日,又見見雪花,選擇數(shù)數(shù)據(jù)庫數(shù)據(jù)庫工工作由CC來完成成,C對(duì)對(duì)我們的的建議為為:開發(fā)發(fā)數(shù)據(jù)庫庫管理信信息系統(tǒng)統(tǒng)需要選選擇后臺(tái)臺(tái)數(shù)據(jù)庫庫和相應(yīng)應(yīng)的數(shù)據(jù)據(jù)庫訪問問接口。后臺(tái)數(shù)數(shù)據(jù)庫的的選擇需需要考慮慮用戶需需求、系系統(tǒng)功能能和性能能要求等等因素??紤]到到系統(tǒng)所所要管理理的數(shù)據(jù)據(jù)量比較較大,且且需要多多用戶同同時(shí)運(yùn)行行訪問,本項(xiàng)目目將使用用SQLL Seerveer 220055作為后后臺(tái)數(shù)據(jù)據(jù)庫管理理平臺(tái)。2.4.2 數(shù)據(jù)庫庫結(jié)構(gòu)的的設(shè)
15、計(jì)對(duì)于具體體的數(shù)據(jù)據(jù)庫設(shè)計(jì)計(jì),C參參考了AA的需求求分析。由需求求分析的的規(guī)劃可可知整個(gè)個(gè)項(xiàng)目對(duì)對(duì)象有兩兩種信息息,所以以對(duì)應(yīng)的的數(shù)據(jù)庫庫也需要要包含這這兩種信信息,從從而系統(tǒng)統(tǒng)需要包包含如下下兩個(gè)數(shù)數(shù)據(jù)庫表表。Messsagee:留言言信息表表。Replly:回回復(fù)信息息表。C給出了了具體數(shù)數(shù)據(jù)庫表表的書面面文件:在SQQL SServver 20005中創(chuàng)創(chuàng)建一個(gè)個(gè)名為“Liuuyann”的數(shù)據(jù)據(jù)庫,并并新建了了兩個(gè)表表:Meessaage和和Repply。(1) 表Meessaage用用于保存存留言信信息,具具體設(shè)計(jì)計(jì)結(jié)構(gòu)如如表2-1所示示。表2-11 MMesssagee信息表表結(jié)構(gòu)字
16、段名稱稱數(shù)據(jù)類型型是否主鍵鍵默認(rèn)值功能描述述IDint是遞增1編號(hào)Titllevarccharr(2000)否Nulll標(biāo)題Messsageetextt否Nulll內(nèi)容CreaateDDateedateetimme否Nulll時(shí)間IPvarccharr(200)否NulllIP地址址Emaiilvarccharr(2550)否Nulll郵箱Stattustinyyintt否0狀態(tài)(2) 表Reeplyy用于保保存留言言回復(fù)信信息,具具體設(shè)計(jì)計(jì)結(jié)構(gòu)如如表2-2所示示。表2-22 RReplly信息息表結(jié)構(gòu)構(gòu)字段名稱稱數(shù)據(jù)類型型是否主鍵鍵默認(rèn)值功能描述述IDint是遞增1編號(hào)Repllyvarcc
17、harr(10000)否Nulll內(nèi)容CreaateDDateedateetimme否Nulll時(shí)間IPvarccharr(200)否NulllIP地址址MesssageeIDint否Nulll留言編號(hào)號(hào)20055年122月9日日,傍晚晚,數(shù)據(jù)據(jù)庫的重重要性靜下心細(xì)細(xì)想一下下,數(shù)據(jù)據(jù)庫工作作看似比比較簡(jiǎn)單單,其實(shí)實(shí)很有技技術(shù)含量量。合理理的數(shù)據(jù)據(jù)庫設(shè)計(jì)計(jì)是一個(gè)個(gè)項(xiàng)目是是否高效效的基礎(chǔ)礎(chǔ)。所以以在進(jìn)行行設(shè)計(jì)時(shí),C很謹(jǐn)謹(jǐn)慎、認(rèn)認(rèn)真,經(jīng)經(jīng)過4天天的努力力后才滿滿足他的的要求。接下來來,需要要我自己己親自出出馬,完完成參數(shù)數(shù)設(shè)置文文件和數(shù)數(shù)據(jù)庫訪訪問層的的設(shè)計(jì)。2.5 系統(tǒng)統(tǒng)配置設(shè)設(shè)置和數(shù)數(shù)據(jù)庫訪訪問
18、層系統(tǒng)配置置設(shè)置和和數(shù)據(jù)庫庫訪問層層的工作作由我來來完成,此步驟驟是整個(gè)個(gè)項(xiàng)目的的基礎(chǔ),項(xiàng)目中中的具體體功能將將以此為為基礎(chǔ)進(jìn)進(jìn)行擴(kuò)展展。我深深知此步步驟的重重要性,所以一一直通宵宵達(dá)旦,盡力尋尋求最優(yōu)優(yōu)方案。20055年122月100日,上上午,多多云間陰陰拿著A的的功能分分析、BB的規(guī)劃劃文件和和C的數(shù)數(shù)據(jù)庫設(shè)設(shè)計(jì),我我仔細(xì)統(tǒng)統(tǒng)籌規(guī)劃劃,總結(jié)結(jié)出此過過程需要要兩個(gè)階階段,分分別需要要完成系系統(tǒng)配置置和實(shí)現(xiàn)現(xiàn)數(shù)據(jù)庫庫訪問層層。2.5.1 系統(tǒng)配配置經(jīng)過前面面兩天的的忙碌,總算有有了一點(diǎn)點(diǎn)成果。經(jīng)過總總體構(gòu)成成功能分分析后,接下來來就可以以根據(jù)各各構(gòu)成功功能模塊塊進(jìn)行實(shí)實(shí)質(zhì)性的的工作了了。具體
19、體有如下下兩個(gè)工工作。新建網(wǎng)站站項(xiàng)目。實(shí)現(xiàn)。1. 新新建網(wǎng)站站項(xiàng)目實(shí)質(zhì)性工工作的第第一步是是創(chuàng)建一一個(gè)Viisuaal SStuddio 20005項(xiàng)目目,流程程如下。(1) 打開VVisuual Stuudioo 20005,選擇【文件】【項(xiàng)項(xiàng)目】【網(wǎng)站站】命令令,在彈彈出的【新建網(wǎng)網(wǎng)站】對(duì)對(duì)話框中中創(chuàng)建一一個(gè)名為為“Liuuyann”的網(wǎng)站站項(xiàng)目,如圖22-5所所示。(2) 然后根根據(jù)2.3.11節(jié)中介介紹的規(guī)規(guī)劃文件件,分別別創(chuàng)建對(duì)對(duì)應(yīng)的程程序文件件,并分分別命名名。創(chuàng)建建完畢后后的效果果如圖22-6所所示。圖2-55 新建建網(wǎng)站項(xiàng)項(xiàng)目 圖2-66 Viisuaal SStuddio 2
20、0005解決決方案 資源管管理器中中的程序序文件2. 配配置系統(tǒng)統(tǒng)文件我們的這這個(gè)在線線留言簿簿項(xiàng)目是是由幾個(gè)個(gè)程序文文件實(shí)現(xiàn)現(xiàn)的。要要想這些些程序成成功運(yùn)行行,需要要一個(gè)前前提:配配置系統(tǒng)統(tǒng)文件。在Viisuaal SStuddio 20005開發(fā)發(fā)ASPP.NEET程序序時(shí),系系統(tǒng)配置置文件是是Webb.coonfiig,其其主要功功能是設(shè)設(shè)置數(shù)據(jù)據(jù)庫的連連接參數(shù)數(shù),并配配置了系系統(tǒng)與AAjaxx服務(wù)器器的相關(guān)關(guān)內(nèi)容。1) 配配置連接接字符串串參數(shù)配置連接接字符串串參數(shù)即即設(shè)置系系統(tǒng)程序序連接數(shù)數(shù)據(jù)庫的的參數(shù),其對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。其中,“souurcee”設(shè)置連連接的數(shù)數(shù)據(jù)庫服服務(wù)器
21、;“useer iid”和“pwdd”分別指指定數(shù)據(jù)據(jù)庫的登登錄名和和密碼;“dattabaase”設(shè)置連連接數(shù)據(jù)據(jù)庫的名名稱。Web.connfigg文件是是ASPP.NEET的基基本文件件,通常常用于存存儲(chǔ)系統(tǒng)統(tǒng)的公用用信息,數(shù)據(jù)庫庫的連接接語句就就在里面面建立。上述代代碼是通通用的AASP.NETT配置代代碼,但但是在AASP.NETT代碼調(diào)調(diào)試時(shí)需需要加入入如下調(diào)調(diào)試代碼碼。設(shè)置“ccomppilaatioon ddebuug=truue”后就啟用用了 ASSPX 調(diào)試。如果將此此值設(shè)置置為“fallse”,將提高高此應(yīng)用用程序運(yùn)運(yùn)行時(shí)的的性能。設(shè)置為為“truue”后可以將將調(diào)試符符
22、號(hào)(.pdbb 信息息) 插插入到編編譯頁中中。因?yàn)闉檫@將創(chuàng)創(chuàng)建執(zhí)行行起來較較慢的大大文件,所以應(yīng)應(yīng)該只在在調(diào)試時(shí)時(shí)將此值值設(shè)置為為 trrue,而在所所有其他他時(shí)候都都設(shè)置為為fallse。2) 配配置Ajjax服服務(wù)器參參數(shù)配置Ajjax服服務(wù)器參參數(shù)即配配置Ajjax Conntrool TToollkitt程序集集參數(shù),為AjjaxCConttrollTooolkiit.ddll程程序集提提供一個(gè)個(gè)前綴字字符串“AjaaxCoontrrolTToollkitt”。這樣樣,系統(tǒng)統(tǒng)頁面在在引用AAjaxxConntroolTooolkkit.dlll中的控控件時(shí),不需要要額外添添加代代碼。
23、上上述功能能在元元素內(nèi)的的對(duì)應(yīng)實(shí)實(shí)現(xiàn)代碼碼如下。 20055年122月100日,中中午,WWeb.connfigg文件的的重要性性我深刻知知道Weeb.cconffig文文件的重重要性,在ASSP.NNET中中,資源源的配置置信息包包含在一一組配置置文件中中,每個(gè)個(gè)文件都都名為WWeb.connfigg。每個(gè)個(gè)配置文文件都包包含XMML標(biāo)記記和子標(biāo)標(biāo)記的嵌嵌套層次次結(jié)構(gòu),這些標(biāo)標(biāo)記帶有有指定配配置設(shè)置置的屬性性。因?yàn)闉檫@些標(biāo)標(biāo)記必須須是格式式正確的的XMLL,所以以標(biāo)記、子標(biāo)記記和屬性性是區(qū)分分大小寫寫的。標(biāo)標(biāo)記名和和屬性名名是Caamell大小寫寫形式的的,這意意味著標(biāo)標(biāo)記名的的第一個(gè)個(gè)字符
24、是是小寫的的,任何何后面連連接單詞詞的第一一個(gè)字母母都是大大寫的。屬性值值是Paascaal大小小寫形式式的,這這意味著著第一個(gè)個(gè)字符是是大寫的的,任何何后面連連接單詞詞的第一一個(gè)字母母也是大大寫的。但trrue和和fallse例例外,它它們總是是小寫的的。總結(jié)結(jié)完畢之之后,我我決定早早點(diǎn)休息息,為接接下來的的數(shù)據(jù)庫庫訪問層層設(shè)計(jì)做做好準(zhǔn)備備。2.5.2 數(shù)據(jù)庫庫訪問層層設(shè)計(jì)20055年122月100日,下下午,出出現(xiàn)陽光光,什么么是數(shù)據(jù)據(jù)庫訪問問層設(shè)計(jì)計(jì)數(shù)據(jù)庫訪訪問層我我已經(jīng)使使用了多多次,但但是其具具體是一一個(gè)什么么東西我我還是不不很明白白。帶著著問題,我在網(wǎng)網(wǎng)絡(luò)中找找到了答答案:數(shù)數(shù)據(jù)庫
25、訪訪問層就就是實(shí)現(xiàn)現(xiàn)數(shù)據(jù)庫庫訪問。網(wǎng)絡(luò)中中檢索到到的信息息如下。數(shù)據(jù)庫訪訪問層:有時(shí)也也稱為是是持久層層,其功功能主要要是負(fù)責(zé)責(zé)數(shù)據(jù)庫庫的訪問問。簡(jiǎn)單單的說法法就是實(shí)實(shí)現(xiàn)對(duì)數(shù)數(shù)據(jù)表的的 Seelecct、IInseert、Upddatee、Deelette的操操作。如如果要加加入ORRM的元元素,那那么就會(huì)會(huì)包括對(duì)對(duì)象和數(shù)數(shù)據(jù)表之之間的mmapppingg,以及及對(duì)象實(shí)實(shí)體的持持久化。我編寫了了文件llei.cs,實(shí)現(xiàn)應(yīng)應(yīng)用程序序的數(shù)據(jù)據(jù)庫訪問問層。文文件leei.ccs的主主要功能能是,在在ASPPNETTAJAAXWeeb. AjaaxLeeaveeworrd空間間內(nèi)建立立Messsagg
26、e類,并實(shí)現(xiàn)現(xiàn)對(duì)系統(tǒng)統(tǒng)庫中數(shù)數(shù)據(jù)的處處理。上上述功能能的實(shí)現(xiàn)現(xiàn)流程如如圖2-7所示示。圖2-77 數(shù)據(jù)據(jù)訪問層層實(shí)現(xiàn)流流程圖20055年122月155日,傍傍晚,數(shù)數(shù)據(jù)訪問問的方式式數(shù)據(jù)庫訪訪問層是是.NEET框架架的核心心知識(shí),建立合合理的數(shù)數(shù)據(jù)庫訪訪問層結(jié)結(jié)構(gòu),可可以提高高系統(tǒng)的的效率,并為后后期維護(hù)護(hù)帶來極極大的方方便。通通過實(shí)現(xiàn)現(xiàn)數(shù)據(jù)的的訪問模模式,可可達(dá)到對(duì)對(duì)物理數(shù)數(shù)據(jù)庫中中的表、視圖等等的訪問問。應(yīng)用用程序?qū)?duì)數(shù)據(jù)庫庫的訪問問有以下下3種方方式。(1) 事務(wù)腳腳本:存存儲(chǔ)過程程。(2)ORRM:對(duì)對(duì)象-關(guān)系映映射。(3) 表模型型:以物物理數(shù)據(jù)據(jù)表為基基本單位位進(jìn)行訪訪問,類類似
27、.NETT中的DDataaTabble。而我的想想法是:在.NNET中中第三種種方式更更容易實(shí)實(shí)現(xiàn)。因因?yàn)楸砗秃鸵晥D有有很多相相似點(diǎn),不同的的是視圖圖是只讀讀的。通通過表模模型,可可以很好好地解決決實(shí)現(xiàn)層層和表現(xiàn)現(xiàn)層的結(jié)結(jié)合問題題,并解解決效率率問題,這在大大型站點(diǎn)點(diǎn)中十分分重要。下面介紹紹文件llei.cs的的具體實(shí)實(shí)現(xiàn)流程程。1. 定定義Meessaage類類定義Meessaage類類的實(shí)現(xiàn)現(xiàn)代碼如如下。usinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Datta.
28、SSqlCClieent;nameespaace ASPPNETTAJAAXWeeb.AAjaxxLeaavewworddpubblicc cllasss Meessaagepuubliic MMesssagee()2. 獲獲取系統(tǒng)統(tǒng)內(nèi)留言言信息獲取系統(tǒng)統(tǒng)內(nèi)留言言信息即即獲取系系統(tǒng)庫內(nèi)內(nèi)已存在在的留言言信息,其功能能是由方方法GeetMeessaagess()實(shí)實(shí)現(xiàn)的。方法GGetMMesssagees()的具體體實(shí)現(xiàn)流流程如下下。(1) 從系統(tǒng)統(tǒng)配置文文件Weeb.cconffig內(nèi)內(nèi)獲取數(shù)數(shù)據(jù)庫連連接參數(shù)數(shù),并將將其保存存在coonneectiionSStriing內(nèi)內(nèi)。(2) 使用連連接
29、字符符串創(chuàng)建建conn對(duì)象,實(shí)現(xiàn)數(shù)數(shù)據(jù)庫連連接。(3) 新建獲獲取數(shù)據(jù)據(jù)庫留言言數(shù)據(jù)的的SQLL查詢語語句。(4) 創(chuàng)建獲獲取數(shù)據(jù)據(jù)的對(duì)象象da。(5) 打開數(shù)數(shù)據(jù)庫連連接,獲獲取查詢?cè)償?shù)據(jù)。(6) 將獲取取的查詢?cè)兘Y(jié)果保保存在dds中,并返回回ds。上述功能能的對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。publlic DattaSeet GGetMMesssagees()/獲取取連接字字符串strringg coonneectiionSStriing = CConffiguurattionnMannageer.CConnnecttionnStrringgs SQLLCONNNECCTIOONSTTRINNG.
30、CoonneectiionSStriing;/創(chuàng)建連連接SqllConnnecctioon ccon = nnew SqllConnnecctioon(cconnnecttionnStrringg);/創(chuàng)建SQQL語句句strringg cmmdTeext = SELLECTT * FROOM MMesssagee Orrderr byy CrreatteDaate DESSC;/創(chuàng)建SqqlDaataAAdappterrSqllDattaAddaptter da = nnew SqllDattaAddaptter(cmddTexxt,ccon);/定義DaataSSetDattaSeet d
31、ds = neew DDataaSett();tryy /打開開連接coon.OOpenn();/填充充數(shù)據(jù)daa.Fiill(ds,DaataTTablle);cattch(Exccepttionn exx) /拋出異異常thhroww neew EExceeptiion(ex.Messsagge,eex);finnallly /關(guān)閉閉連接coon.CClosse();retturnn dss;數(shù)據(jù)庫的的設(shè)計(jì)真真的很重重要,因因?yàn)閹缀鹾跛械牡膭?dòng)態(tài)WWeb站站點(diǎn)的內(nèi)內(nèi)容都是是基于數(shù)數(shù)據(jù)庫數(shù)數(shù)據(jù)的,所以對(duì)對(duì)數(shù)據(jù)庫庫的操作作應(yīng)該充充分考慮慮效率問問題。在在此告訴訴讀者一一個(gè)小小小的建議議,建議議
32、讀者充充分利用用所在機(jī)機(jī)器內(nèi)存存中緩存存的ADDO對(duì)象象。3. 添添加系統(tǒng)統(tǒng)留言信信息添加系統(tǒng)統(tǒng)留言信信息,即即將新發(fā)發(fā)布的留留言信息息添加到到系統(tǒng)庫庫中,此此功能是是由方法法AdddMesssagge(sstriing tittle,strringg meessaage,strringg ipp,sttrinng eemaiil)實(shí)實(shí)現(xiàn)的。方法AAddMMesssagee(sttrinng ttitlle,sstriing messsagge,sstriing ip,strringg emmaill)的具具體實(shí)現(xiàn)現(xiàn)流程如如下。(1) 從系統(tǒng)統(tǒng)配置文文件Weeb.cconffig內(nèi)內(nèi)獲取數(shù)數(shù)據(jù)
33、庫連連接參數(shù)數(shù),并將將其保存存在coonneectiionSStriing內(nèi)內(nèi)。(2) 使用連連接字符符串創(chuàng)建建conn對(duì)象,實(shí)現(xiàn)數(shù)數(shù)據(jù)庫連連接。(3) 使用SSQL添添加語句句,然后后創(chuàng)建ccmd對(duì)對(duì)象準(zhǔn)備備插入操操作。(4) 打開數(shù)數(shù)據(jù)庫連連接,執(zhí)執(zhí)行新數(shù)數(shù)據(jù)插入入操作。(5) 將數(shù)據(jù)據(jù)插入操操作所涉涉及的行行數(shù)保存存在reesullt中。(6) 插入成成功則返返回reesullt值,失敗則則返回-1。上述功能能的對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。publlic intt AdddMeessaage(strringg tiitlee,sttrinng mmesssagee,sttrinng iip,
34、sstriing emaail) strringg coonneectiionSStriing = CConffiguurattionnMannageer.CConnnecttionnStrringgs SQLLCONNNECCTIOONSTTRINNG.CoonneectiionSStriing;SqllConnnecctioon ccon = nnew SqllConnnecctioon(cconnnecttionnStrringg);/創(chuàng)建SQQL語句句strringg cmmdTeext = INSSERTT INNTO Messsagge(TTitlle,MMesssagee,IPP
35、,Emmaill,CrreatteDaate, Staatuss)VAALUEES(Tittle,Meessaage,IPP,EEmaiil,GGETDDATEE(),0);SqllCommmannd ccmd = nnew SqllCommmannd(ccmdTTextt,coon);/創(chuàng)建參參數(shù)并賦賦值cmdd.Paarammeteers.Addd(Tittle,SqqlDbbTyppe.VVarCCharr,2000);cmdd.Paarammeteers.Addd(Messsagge,SqllDbTTypee.Teext);cmdd.Paarammeteers.Addd(Ip,Sqql
36、DbbTyppe.VVarCCharr,200);cmdd.Paarammeteers.Addd(Emaail,SqqlDbbTyppe.VVarCCharr,2555);cmdd.Paarammeteers0.Vallue = ttitlle;cmdd.Paarammeteers1.Vallue = mmesssagee;cmdd.Paarammeteers2.Vallue = iip;cmdd.Paarammeteers3.Vallue = eemaiil;intt reesullt = -11;tryy /打開開連接coon.OOpenn();/操作作數(shù)據(jù)reesullt = cmmd.
37、EExeccuteeNonnQueery();cattch(Exccepttionn exx) /拋出出異常thhroww neew EExceeptiion(ex.Messsagge,eex);finnallly /關(guān)閉閉連接coon.CClosse();retturnn reesullt;4. 刪刪除系統(tǒng)統(tǒng)留言信信息刪除系統(tǒng)統(tǒng)留言信信息即將將系統(tǒng)內(nèi)內(nèi)存在的的留言數(shù)數(shù)據(jù)從系系統(tǒng)庫中中刪除,此功能能是由方方法DeeletteMeessaage(intt meessaageIID)實(shí)實(shí)現(xiàn)的。其具體體實(shí)現(xiàn)流流程如下下。(1) 從系統(tǒng)統(tǒng)配置文文件Weeb.cconffig內(nèi)內(nèi)獲取數(shù)數(shù)據(jù)庫連連接參數(shù)數(shù)
38、,并將將其保存存在coonneectiionSStriing內(nèi)內(nèi)。(2) 使用連連接字符符串創(chuàng)建建conn對(duì)象,實(shí)現(xiàn)數(shù)數(shù)據(jù)庫連連接。(3) 使用SSQL刪刪除語句句,然后后創(chuàng)建ccmd對(duì)對(duì)象準(zhǔn)備備刪除操操作。(4) 打開數(shù)數(shù)據(jù)庫連連接,執(zhí)執(zhí)行新數(shù)數(shù)據(jù)刪除除操作。(5) 將數(shù)據(jù)據(jù)刪除操操作所涉涉及的行行數(shù)保存存在reesullt中。(6) 刪除成成功則返返回reesullt值,失敗則則返回-1。上述功能能的對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。publlic intt DeeletteMeessaage(intt meessaageIID)strringg coonneectiionSStriing = CC
39、onffiguurattionnMannageer.CConnnecttionnStrringgs SSQLCCONNNECTTIONNSTRRINGG.ConnnecctioonSttrinng;SqllConnnecctioon ccon = nnew SqllConnnecctioon(cconnnecttionnStrringg);/創(chuàng)建SQQL語句句strringg cmmdTeext = DELLETEE Meessaage WHEERE ID = ID;SqllCommmannd ccmd = nnew SqllCommmannd(ccmdTTextt,coon);/創(chuàng)建參參數(shù)并
40、賦賦值cmdd.Paarammeteers.Addd(ID,SqqlDbbTyppe.IInt,4);cmdd.Paarammeteers0.Vallue = mmesssageeID;intt reesullt = -11;tryy /打開開連接coon.OOpenn();/操作作數(shù)據(jù)reesullt = cmmd.EExeccuteeNonnQueery();cattch(Exccepttionn exx) /拋出出異常thhroww neew EExceeptiion(ex.Messsagge,eex);finnallly /關(guān)閉閉連接conn.Cllosee();retturnn re
41、esullt;5. 獲獲取系統(tǒng)統(tǒng)內(nèi)留言言回復(fù)信信息獲取系統(tǒng)統(tǒng)內(nèi)留言言回復(fù)信信息即查查詢系統(tǒng)統(tǒng)庫內(nèi)用用戶對(duì)留留言的回回復(fù)信息息數(shù)據(jù),此功能能是由方方法GeetReeplyyByMMesssagee(innt mmesssageeID)實(shí)現(xiàn)的的。其具具體實(shí)現(xiàn)現(xiàn)流程如如下。(1) 從系統(tǒng)統(tǒng)配置文文件Weeb.cconffig內(nèi)內(nèi)獲取數(shù)數(shù)據(jù)庫連連接參數(shù)數(shù),并將將其保存存在coonneectiionSStriing內(nèi)內(nèi)。(2) 使用連連接字符符串創(chuàng)建建conn對(duì)象,實(shí)現(xiàn)數(shù)數(shù)據(jù)庫連連接。(3) 新建查查詢數(shù)據(jù)據(jù)庫留言言回復(fù)數(shù)數(shù)據(jù)的SSQL查查詢語句句。(4) 創(chuàng)建獲獲取數(shù)據(jù)據(jù)的對(duì)象象da。(5) 打開數(shù)數(shù)
42、據(jù)庫連連接,獲獲取查詢?cè)償?shù)據(jù)。(6) 將獲取取的查詢?cè)兘Y(jié)果保保存在dds中,并返回回ds。上述功能能的對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。publlic DattaSeet GGetRRepllyByyMesssagge(iint messsaggeIDD) sstriing connnecctioonSttrinng = CoonfiigurratiionMManaagerr. ConnnecctioonSttrinngs SQLLCONNNECCTIOONSTTRINNG.CoonneectiionSStriing;SSqlCConnnecttionn coon = neew SSqlCConnnec
43、ttionn(coonneectiionSStriing);/創(chuàng)創(chuàng)建SQQL語句句sstriing cmddTexxt = SSELEECT * FFROMM Reeplyy WHHEREE MeessaageIID = MMesssageeID Ordder by CreeateeDatte DDESCC;SSqlDDataaAdaapteer dda = neew SSqlDDataaAdaapteer(ccmdTTextt,coon);/創(chuàng)創(chuàng)建參數(shù)數(shù)并賦值值dda.SSeleectCCommmandd.Paarammeteers.Addd(MesssaggeIDD,SSqlDDbTyyp
44、e.Intt,4);dda.SSeleectCCommmandd.Paarammeteers0.Vallue = mmesssageeID;/定定義DaataSSetDDataaSett dss = neww DaataSSet();ttry conn.Oppen();/填充數(shù)數(shù)據(jù)da.Filll(dds,DattaTaablee);ccatcch(EExceeptiion ex) thrrow neww Exxcepptioon(eex.MMesssagee,exx);ffinaallyy /關(guān)關(guān)閉連接接conn.Cllosee();rretuurn ds;6. 添添加留言言回復(fù)信信息添加留
45、言言回復(fù)信信息即將將新發(fā)布布的留言言回復(fù)信信息添加加到系統(tǒng)統(tǒng)庫中,此功能能是由方方法AdddReeplyy(sttrinng mmesssagee,sttrinng iip,iint messsaggeIDD)實(shí)現(xiàn)現(xiàn)的。其其具體實(shí)實(shí)現(xiàn)流程程如下。(1) 從系統(tǒng)統(tǒng)配置文文件Weeb.cconffig內(nèi)內(nèi)獲取數(shù)數(shù)據(jù)庫連連接參數(shù)數(shù),并將將其保存存在coonneectiionSStriing內(nèi)內(nèi)。(2) 使用連連接字符符串創(chuàng)建建conn對(duì)象,實(shí)現(xiàn)數(shù)數(shù)據(jù)庫連連接。(3) 使用SSQL添添加語句句,然后后創(chuàng)建ccmd對(duì)對(duì)象準(zhǔn)備備插入操操作。(4) 打開數(shù)數(shù)據(jù)庫連連接,執(zhí)執(zhí)行新數(shù)數(shù)據(jù)插入入操作。(5) 將數(shù)
46、據(jù)據(jù)插入操操作所涉涉及的行行數(shù)保存存在reesullt中。(6) 插入成成功則返返回reesullt值,失敗則則返回-1。上述功能能的對(duì)應(yīng)應(yīng)實(shí)現(xiàn)代代碼如下下。publlic intt AdddReeplyy(sttrinng mmesssagee,sttrinng iip,iint messsaggeIDD) sstriing connnecctioonSttrinng = CoonfiigurratiionMManaagerr.CoonneectiionSStriingss SQLLCONNNECCTIOONSTTRINNG.CoonneectiionSStriing;SSqlCConnne
47、cttionn coon = neew SSqlCConnnecttionn(coonneectiionSStriing);sstriing cmddTexxt = IINSEERT INTTO RReplly(RReplly,IIP,CCreaateDDatee, MesssaggeIDD)VAALUEES(Repply,IPP,GEETDAATE(),MesssaggeIDD);SSqlCCommmandd cmmd = neew SSqlCCommmandd(cmmdTeext,conn);/創(chuàng)創(chuàng)建參數(shù)數(shù)并賦值值ccmd.Parrameeterrs.AAdd(RReplly,SqllDb
48、TTypee.VaarChhar,10000);ccmd.Parrameeterrs.AAdd(IIp,SqllDbTTypee.VaarChhar,20);ccmd.Parrameeterrs.AAdd(MMesssageeID,SqqlDbbTyppe.IInt,4);ccmd.Parrameeterrs00.VValuue = meessaage;ccmd.Parrameeterrs11.VValuue = ipp;ccmd.Parrameeterrs22.VValuue = meessaageIID;iint ressultt = -1;ttry /打開連連接conn.Oppen();
49、/操作數(shù)數(shù)據(jù)ressultt = cmdd.ExxecuuteNNonQQuerry();ccatcch(EExceeptiion ex) /拋出異異常thrrow neww Exxcepptioon(eex.MMesssagee,exx);ffinaallyy /關(guān)閉連連接conn.Cllosee();rretuurn ressultt;在上述各各處理方方法中,使用了了SQLL的查詢?cè)儭⑻砑蛹雍蛣h除除語句,對(duì)系統(tǒng)統(tǒng)數(shù)據(jù)庫庫內(nèi)的數(shù)數(shù)據(jù)進(jìn)行行了操作作處理。在現(xiàn)實(shí)實(shí)Webb應(yīng)用系系統(tǒng)中,各類應(yīng)應(yīng)用的數(shù)數(shù)據(jù)庫相相關(guān)操作作都是基基于上述述3種操操作的。SQLL語句是是數(shù)據(jù)庫庫技術(shù)的的核心知知識(shí)之一一,
50、讀者者可以通通過在百百度中檢檢索“SQLL教程”關(guān)鍵字字來獲取取其相關(guān)關(guān)知識(shí)。20055年122月188日,晴晴空萬里里今天完成成了數(shù)據(jù)據(jù)庫訪問問層的編編碼工作作,壓力力頓時(shí)減減輕了許許多,決決定抽出出一點(diǎn)時(shí)時(shí)間做一一個(gè)技術(shù)術(shù)總結(jié)。在ASSP.NNET程程序中,常把經(jīng)經(jīng)常用到到的設(shè)置置性信息息保存到到數(shù)據(jù)庫庫中,這這些信息息對(duì)于每每一個(gè)訪訪問用戶戶都是相相同的。若每一一個(gè)用戶戶訪問時(shí)時(shí),都要要去數(shù)據(jù)據(jù)庫里取取出來,然后顯顯示給用用戶,會(huì)會(huì)加重?cái)?shù)數(shù)據(jù)庫服服務(wù)器負(fù)負(fù)載,使使之無法法快速服服務(wù)于更更重要的的事務(wù)處處理。而而且Weeb服務(wù)務(wù)器也必必須不停停地創(chuàng)建建ADOO對(duì)象,從而消消耗大量量資源,導(dǎo)
51、致當(dāng)當(dāng)用戶很很多時(shí)幾幾乎失去去響應(yīng)。如果能能把一些些常用信信息事先先存儲(chǔ)在在內(nèi)存中中,當(dāng)用用戶訪問問時(shí),直直接從內(nèi)內(nèi)存中取取出,顯顯示給用用戶,則則可以大大大減小小系統(tǒng)的的壓力,提高響響應(yīng)速度度。 在具體應(yīng)應(yīng)用時(shí),可以把把已經(jīng)取取得了數(shù)數(shù)據(jù)的RRecoordSSet對(duì)對(duì)象存儲(chǔ)儲(chǔ)在Apppliicattionn變量中中。當(dāng)用用戶訪問問時(shí),從從Apppliccatiion變變量中取取得ReecorrdSeet對(duì)象象,而不不需再次次建立數(shù)數(shù)據(jù)庫連連接。也也可以將將ReccorddSett對(duì)象里里的數(shù)據(jù)據(jù)存儲(chǔ)在在數(shù)組中中,然后后再將數(shù)數(shù)組存儲(chǔ)儲(chǔ)在Apppliicattionn變量中中,使用用時(shí)用數(shù)數(shù)組
52、的方方式讀取取。另外,在在此總結(jié)結(jié)一下效效率的問問題。因因?yàn)閿?shù)據(jù)據(jù)庫技術(shù)術(shù)是動(dòng)態(tài)態(tài)站點(diǎn)的的基礎(chǔ),所以在在Webb程序內(nèi)內(nèi)會(huì)有大大量的查查詢語句句。同時(shí)時(shí),隨著著站點(diǎn)訪訪問量的的增加,一個(gè)站站點(diǎn)可能能同時(shí)需需要查詢?cè)兇罅繑?shù)數(shù)據(jù),所所以數(shù)據(jù)據(jù)庫查詢?cè)兊男事蕟栴}便便提上了了日常議議程。在在此向讀讀者提出出如下兩兩條建議議。(1) 合理使使用索引引。并不是所所有索引引對(duì)查詢?cè)兌加行?,SQQL是根根據(jù)表中中數(shù)據(jù)來來進(jìn)行查查詢優(yōu)化化的,當(dāng)當(dāng)索引列列有大量量重復(fù)數(shù)數(shù)據(jù)時(shí),SQLL查詢可可能不會(huì)會(huì)去利用用索引,如一表表中有字字段seex,mmalee、feemalle幾乎乎各一半半,那么么即使在在sexx
53、上建了了索引也也對(duì)查詢?cè)冃势鹌鸩涣俗髯饔?。讀讀者可以以通過在在百度中中檢索“索引效效率優(yōu)化化”關(guān)鍵字字來獲取取相關(guān)知知識(shí)。(2) 使用存存儲(chǔ)過程程。存儲(chǔ)過程程是一個(gè)個(gè)很好的的工具,它不但但提高了了程序的的安全性性,而且且也提高高了數(shù)據(jù)據(jù)處理效效率。編編寫合理理的語句句可以決決定存儲(chǔ)儲(chǔ)過程和和觸發(fā)器器的效率率??偨Y(jié)完畢畢之后,我決定定早點(diǎn)休休息,為為接下來來的具體體編碼階階段做準(zhǔn)準(zhǔn)備。2.6 編 碼 實(shí)實(shí) 現(xiàn)20055年122月199日,上上午,陽陽光明媚媚因?yàn)樵谙迪到y(tǒng)框架架設(shè)計(jì)中中,我已已經(jīng)編寫寫好了共共用類,完成了了數(shù)據(jù)訪訪問層的的設(shè)計(jì),所以編編碼工作作的思路路就十分分清晰了了。D只只需在
54、我我已經(jīng)編編寫類的的基礎(chǔ)上上進(jìn)行擴(kuò)擴(kuò)充,即即可完成成整個(gè)編編碼工作作。最后后的編碼碼工作很很重要,所以我我讓思維維最敏捷捷的D來來完成。今天我把把需要的的前期資資料(規(guī)規(guī)劃書、數(shù)據(jù)庫庫設(shè)計(jì)、框架設(shè)設(shè)計(jì)、類類設(shè)計(jì))都交給給了D。20055年122月200日,上上午,多多云間陰陰,出現(xiàn)現(xiàn)波瀾5天過去去了,和和D約定定的交付付時(shí)間已已經(jīng)到了了,但是是我一直直沒有看看見D的的蹤影。無奈之之下,我我給他打打了一個(gè)個(gè)電話。原來他他女友父父母從老老家來看看他,這這幾天陪陪他們?nèi)トス浯竺髅骱⑶Х鹕搅肆?,明天天?zhǔn)備去去趵突泉泉,一直直抽不出出身來做做項(xiàng)目。此時(shí)的的我意識(shí)識(shí)到了問問題的嚴(yán)嚴(yán)重性,D已經(jīng)經(jīng)沒有時(shí)
55、時(shí)間來完完成項(xiàng)目目了,我我只好硬硬著頭皮皮上架,做出了了如下兩兩個(gè)決定定。(1) 找學(xué)生生會(huì)主席席CH出出面和學(xué)學(xué)校溝通通,再寬寬限5天天,我們們保證完完成任務(wù)務(wù)。(2) 我嘗試試完成DD的任務(wù)務(wù)。幸好學(xué)校校很寬容容,寬限限了我們們5天,而我只只能通宵宵達(dá)旦2.6.1 留言數(shù)數(shù)據(jù)顯示示1. 留留言數(shù)據(jù)據(jù)顯示模模塊留言數(shù)據(jù)據(jù)顯示模模塊的功功能是,將系統(tǒng)統(tǒng)庫內(nèi)的的留言信信息以列列表的樣樣式顯示示出來,并提供供新留言言發(fā)布表表單,將將發(fā)表的的數(shù)據(jù)添添加到系系統(tǒng)庫中中。上述述功能的的實(shí)現(xiàn)文文件如下下。文件Inndexx.asspx。文件Inndexx.asspx.cs。文件Yaanzhhenggma.
56、asppx。文件AjjaxSServvicee.css。1) 留留言列表表顯示頁頁面文件Inndexx.asspx的的功能是是,插入入專用控控件將系系統(tǒng)內(nèi)數(shù)數(shù)據(jù)讀取取并顯示示出來,然后提提供發(fā)布布表單供供用戶發(fā)發(fā)布新留留言。其其具體實(shí)實(shí)現(xiàn)流程程如下。插入1個(gè)個(gè)GriidViiew控控件,以以列表樣樣式顯示示庫內(nèi)的的數(shù)據(jù)。在表格內(nèi)內(nèi)顯示各各留言的的數(shù)據(jù)內(nèi)內(nèi)容。添加3個(gè)個(gè)鏈接供供留言發(fā)發(fā)布、留留言回復(fù)復(fù)和留言言管理操操作。調(diào)用Ajjax程程序集內(nèi)內(nèi)的DyynammicPPopuulatte控件件,實(shí)現(xiàn)現(xiàn)面板顯顯示留言言回復(fù)內(nèi)內(nèi)容。文件Inndexx.asspx中中,留言言列表顯顯示頁面面的主要要實(shí)
57、現(xiàn)代代碼如下下。 作者者:aa hrref=maailtto: 于、 留留言 我要要留言&nbbsp;a hhreff=HHuiffu.aaspxx?MeessaageIID=我要回回復(fù)&nbssp;展展開 ajaaxTooolkkit:DynnamiicPoopullateeExttendder ID=dppeReeplyy rrunaat=serrverr CleearCConttenttsDuurinngUppdatte=truue UpddatiingCCssCClasss=PoppulaatePPaneel SerrvicceMeethood=GettRepplyBByMeessaa
58、ge SeerviicePPathh=AAjaxxSerrvicce.aasmxx ConntexxtKeey= TaargeetCoontrrolIID=pReeplyy PoppulaateTTrigggerrConntroolIDD=hhlShhowRReplly上述代碼碼執(zhí)行后后將在頁頁面內(nèi)顯顯示系統(tǒng)統(tǒng)內(nèi)已存存在的留留言數(shù)據(jù)據(jù)。2) 留留言發(fā)布布表單本模塊的的功能是是為用戶戶提供新新留言的的發(fā)布表表單,其其具體實(shí)實(shí)現(xiàn)流程程如下。插入5個(gè)個(gè)TexxtBoox控件件,分別別用于輸輸入留言言標(biāo)題、IP地地址、郵郵件地址址、留言言內(nèi)容和和驗(yàn)證碼碼。插入TeextBBoxWWateermaark
59、控控件,用用于確保保留言標(biāo)標(biāo)題不為為空。調(diào)用TeextBBoxWWateermaark控控件,用用于確保保郵件格格式的合合法性。調(diào)用VaaliddatoorCaalloout控控件,用用于顯示示郵件非非法提示示水印效效果。調(diào)用TeextBBoxWWateermaark控控件,用用于確保保郵件內(nèi)內(nèi)容的合合法性。插入激活活按鈕,用于執(zhí)執(zhí)行相關(guān)關(guān)操作事事件。定義MeessaageVValiidattor函函數(shù),用用于確保保留言內(nèi)內(nèi)容大于于10字字符而不不多于880000字符。調(diào)用驗(yàn)證證碼生成成文件。文件Inndexx.asspx中中,留言言發(fā)布表表單的主主要實(shí)現(xiàn)現(xiàn)代碼如如下。留留言標(biāo)題題: IP地地
60、址:電子郵郵件:aasp:ReggulaarExxpreessiionVValiidattor ID=reevEmmaill rrunaat=serrverr CConttrollToVValiidatte=tbEEmaiilDDispplayy=NNonee EErroorMeessaage=電子子郵件格格式不正正確,請(qǐng)請(qǐng)輸入如如下形式式的電子子郵件:mmmmmmnnnn.ccom VaaliddatiionEExprresssionn=w+(-+.w+)*w+(-.w+)*. ww+(-.w+)* 留言言內(nèi)容:驗(yàn) 證證 碼:&nbbsp;&nnbspp;&nnbspp;&nnbspp;&n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年城市軌道交通建設(shè)委托管理合同
- 2024工裝裝修合同范文
- 2024個(gè)人房屋裝修合同范本
- 2024年度安徽省某項(xiàng)環(huán)保設(shè)施建筑工程施工合同
- 母嬰類課件教學(xué)課件
- 2024年員工保密責(zé)任協(xié)議書
- 2024年度計(jì)算機(jī)軟硬件采購(gòu)合同
- 2024年度應(yīng)急物流服務(wù)協(xié)議
- 2024年店鋪?zhàn)赓U協(xié)議(含裝修)
- 2024年度企業(yè)咨詢服務(wù)合同(戰(zhàn)略規(guī)劃)
- 只爭(zhēng)朝夕不負(fù)韶華崗位競(jìng)聘述職報(bào)告
- 農(nóng)場(chǎng)工作制度與農(nóng)民崗位職責(zé)
- 2024年山東公務(wù)員考試行測(cè)真題及解析【完美打印版】
- 田賽裁判法與規(guī)則2
- 社區(qū)心肺復(fù)蘇術(shù)普及
- 冬棗植保知識(shí)培訓(xùn)課件
- 校園突發(fā)事件與應(yīng)急管理課件
- 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)職業(yè)生涯規(guī)劃
- DR拼接技術(shù)及常規(guī)攝片注意事項(xiàng)
- 《股票入門》課件
- 《不為人知的間歇泉》課件
評(píng)論
0/150
提交評(píng)論