2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計(論 文)</p><p>  題    目 基于UML的書店在線銷售系統(tǒng)            </p><p>  并列英文題 UML-Based Bookstore Online Sales System        </p><p><b>  摘要</b></p><p>

2、;  隨著科技日新月異的發(fā)展,Internet已經(jīng)成為人們生活、工作、學(xué)習(xí)越來越離不開的平臺。Web技術(shù)已經(jīng)不在局限于單純地提供信息服務(wù),而是日益成為一個操作平臺,為用戶提供強(qiáng)大的服務(wù)功能。例如網(wǎng)上電子商務(wù)、社會信息數(shù)據(jù)庫等。網(wǎng)絡(luò)實現(xiàn)了遠(yuǎn)程通訊,人們能夠通過計算機(jī)網(wǎng)絡(luò)進(jìn)行電子郵件的發(fā)送,召開網(wǎng)絡(luò)會議,網(wǎng)上購物,甚至坐在家里就可以上大學(xué)(網(wǎng)上教育)。因此,考慮到我所學(xué)的專業(yè)知識,及自己的能力,我決定做一個基于B/S體系架構(gòu)創(chuàng)建這個基于UM

3、L建模的書店在線銷售系統(tǒng),緊跟行業(yè)發(fā)展,滿足人們生活、學(xué)習(xí)的需要。</p><p>  本系統(tǒng)采用基本三層結(jié)構(gòu)建立一個基于B/S架構(gòu)的第三波書店在線銷售系統(tǒng),實現(xiàn)信息網(wǎng)絡(luò)化。登錄者可以注冊成為本系統(tǒng)的用戶,查詢圖書信息,將圖書放入購物車,實現(xiàn)在線購買和付款,及修改個人密碼和個人信息。在后臺管理員可以進(jìn)行訂單管理,用戶管理,圖書管理,圖片管理等,方便網(wǎng)站的管理與維護(hù)。</p><p>  本

4、系統(tǒng)中采用Microsoft Visual Studio 2008作為開發(fā)平臺,使用SQLServer2005作為后臺數(shù)據(jù)庫。整個個性化頁面生成系統(tǒng)主要由使用ASP.NET技術(shù)開發(fā)實現(xiàn)個性化Web頁面生成。</p><p>  關(guān)鍵詞:UML、基本三層結(jié)構(gòu)、SQLServer數(shù)據(jù)庫、ASP.NET。</p><p><b>  Abstract</b></p&g

5、t;<p>  Along with the rapid development of science and technology, the Internet has become the platform of people's lives , work, and study, they can't depart from it .Web technology has not only limited

6、to provide information service, but also has increasingly become an operation platform, to provide powerful service functions for users.For example online e-commerce and social information database, etc.The remote commun

7、ication has come true,people can send E-mails,have a meeting and go shopping throug</p><p>  This system uses a basic there-tier application and set up the third wave of  online bookstore sales system

8、which is based on B/S structure,which can make information network come ture.You can register as users of the system,and then you can look up the informations of the books,put the books into the shopping cart and purchas

9、e and pay for them online.You can also change your password and personal information.In the background, the administrator can carry on the orders management,the library ma</p><p>  The system uses Microsoft

10、Visual Studio 2008 as development platform and uses SQLServer2005 as backend database.The individual page generating system consists of using the Asp.net technology.</p><p>  Keywords: UML, there-tier applic

11、ation, SQLServer database, ASP.NET.</p><p><b>  目 錄</b></p><p><b>  第一章 前言1</b></p><p>  1.1 課題背景1</p><p>  1.2 研究意義2</p><p>  1

12、.3 課題研究的主要工作3</p><p>  第二章 相關(guān)技術(shù)5</p><p>  2.1 基于UML語言的建模語言5</p><p>  2.2 三層結(jié)構(gòu)技術(shù)在系統(tǒng)中的應(yīng)用7</p><p>  2.3 用戶控件的應(yīng)用9</p><p>  2.4 數(shù)字水印效果的實現(xiàn)10</p><

13、;p>  2.5 ASP中session的用法10</p><p>  2.6 購物車的實現(xiàn)原理11</p><p>  第三章 系統(tǒng)需求分析15</p><p>  3.1 系統(tǒng)的功能需求15</p><p>  3.2 系統(tǒng)設(shè)計思想16</p><p>  第四章 系統(tǒng)數(shù)據(jù)庫設(shè)計及其實現(xiàn)21&l

14、t;/p><p>  4.1 系統(tǒng)數(shù)據(jù)庫總體設(shè)計21</p><p>  4.2 部分?jǐn)?shù)據(jù)表的設(shè)計21</p><p>  第五章 系統(tǒng)總體設(shè)計及部分重要模塊的實現(xiàn)24</p><p>  5.1 部分界面的展示24</p><p>  5.2 三層結(jié)構(gòu)的實現(xiàn)25</p><p>  5.

15、3 登陸及注冊新用戶的實現(xiàn)28</p><p>  5.4 圖書增查改的實現(xiàn)34</p><p>  第六章系統(tǒng)測試38</p><p>  6.1 系統(tǒng)測試工具38</p><p>  6.2 簡單的系統(tǒng)測試38</p><p><b>  第七章 總結(jié)1</b></p&

16、gt;<p><b>  致 謝2</b></p><p><b>  參考文獻(xiàn)3</b></p><p><b>  附錄A1</b></p><p><b>  第一章 前言</b></p><p><b>  1.1 課

17、題背景</b></p><p>  臨近畢業(yè),考慮三年來大學(xué)生活的點(diǎn)點(diǎn)滴滴,一直以來我都對網(wǎng)絡(luò)比較的感興趣,于是結(jié)合大學(xué)三年一直學(xué)習(xí)的C#.NET考慮做一個書店在線銷售系統(tǒng)。</p><p>  隨著21世紀(jì)的到來,信息化時代已經(jīng)向我們走來,這個時代的最重要的標(biāo)志就是計算機(jī)的廣泛應(yīng)用。如今社會上計算機(jī)應(yīng)用已經(jīng)達(dá)到非常普及的程度,隨處都可以見到計算機(jī)的身影。我們也熟悉了在社會各處

18、遇見它們的環(huán)境,家庭娛樂,學(xué)校的機(jī)房,金融場所,以及到處可見的網(wǎng)吧,計算機(jī)如水銀般無孔不入。我們甚至?xí)岩捎嬎銠C(jī)還將向哪里深入,還將控制哪個地方,當(dāng)然這前景依然是樂觀的。</p><p>  現(xiàn)在的計算機(jī)是由早期的電動計算器發(fā)展而來的。1945年,世界上出現(xiàn)了第一臺電子數(shù)字計算機(jī)“ENIAC”,用于計算彈道。是由美國賓夕法尼亞大學(xué)莫爾電工學(xué)院制造的,但它的體積龐大,占地面積170多平方米,重量約30噸,消耗近10

19、0千瓦的電力。顯然,這樣的計算機(jī)成本很高,使用不便。1956年,晶體管電子計算機(jī)誕生了,這是第二代電子計算機(jī)。只要幾個大一點(diǎn)的柜子就可將它容下,運(yùn)算速度也大大地提高了。1959年出現(xiàn)的是第三代集成電路計算機(jī)。從20世紀(jì)70年代開始,這是電腦發(fā)展的最新階段。到1976年,由大規(guī)模集成電路和超大規(guī)模集成電路制成的“克雷一號”,使電腦進(jìn)入了第四代。超大規(guī)模集成電路的發(fā)明,使電子計算機(jī)不斷向著小型化、微型化、低功耗、智能化、系統(tǒng)化的方向更新?lián)Q代

20、。20世紀(jì)90年代,電腦向“智能”方向發(fā)展,制造出與人腦相似的電腦,可以進(jìn)行思維、學(xué)習(xí)、記憶、網(wǎng)絡(luò)通信等工作。進(jìn)入21世紀(jì),電腦更是筆記本化、微型化和專業(yè)化,每秒運(yùn)算速度超過100萬次,不但操作簡易、價格便宜,而且可以代替人們的部分腦力勞動,甚至在某些方面擴(kuò)展了人的智能。于是,今天的微型電子計算機(jī)就被形象地稱做電腦了。</p><p>  計算機(jī)技術(shù)的發(fā)展速度是其它科學(xué)行業(yè)不可比擬的,現(xiàn)代計算機(jī)是采用先進(jìn)的電子技

21、術(shù)來代替陳舊落后的機(jī)械或繼電器技術(shù),隨著大規(guī)模和超大規(guī)模集成電路的發(fā)展,應(yīng)用到計算機(jī)上,使計算機(jī)的體積越來越小,計算機(jī)的運(yùn)算速度越來越快,價格越來越低。但要想大幅度提高計算機(jī)的性能必將遇到難以逾越的障礙,科學(xué)家們把目光投向了最基本的物理原理上,未來光子、量子和分子計算機(jī)為代表的新技術(shù)將推動新一輪超級計算技術(shù)革命。因此,面對當(dāng)前迅猛發(fā)展的信息化建設(shè)和靈活多變的信息系統(tǒng)的應(yīng)用,尋找一種易于維護(hù)、易于組件復(fù)用、交互性良好的、高效的Web應(yīng)用程

22、序開發(fā)方案,具有極其重要的意義,本文正是在這樣的背景下開展研究的。</p><p><b>  1.2 研究意義</b></p><p>  近年來,隨著網(wǎng)絡(luò)技術(shù)和Internet的迅速發(fā)展,基于Browser/Server結(jié)構(gòu)的Web應(yīng)用,因其具有易用性、通用性和良好的可擴(kuò)展性等優(yōu)點(diǎn)而發(fā)展迅速,正逐漸成為實現(xiàn)企業(yè)管理信息系統(tǒng)的主流技術(shù)。而開發(fā)一個Web應(yīng)用系統(tǒng)是一項

23、浩大的工程,要求設(shè)計者能夠提出合理的系統(tǒng)架構(gòu)。合理的系統(tǒng)架構(gòu)可以減少開發(fā)及維護(hù)系統(tǒng)所用的資源,提升工作效率。因此,在Web企業(yè)級應(yīng)用系統(tǒng)開發(fā)過程中,設(shè)計模式的選定和應(yīng)用系統(tǒng)架構(gòu)的設(shè)計是一個重要環(huán)節(jié)。</p><p>  信息技術(shù)中具有重要地位的軟件產(chǎn)業(yè)發(fā)展速度更迅速,隨著軟件產(chǎn)業(yè)的規(guī)模越來越大和對軟件通用性的要求越來越強(qiáng),在軟件開發(fā)的各個階段都要求有盡可能的可交互性和可重用性,即要求有盡可能完善的規(guī)范和通用的工具

24、。因此在七十年代出現(xiàn)了各式各樣的建模語言,最多的時候有五六十種之多。這些建模語言,功能大體相近,但樣式大都不同,這給使用者帶來了很大的不便。用戶并不了解不同建模語言的優(yōu)缺點(diǎn)及相互之間的差異,因而很難根據(jù)應(yīng)用特點(diǎn)來選擇合適的建模語言。各國軟件開發(fā)人員歷經(jīng)各種比較和使用。最終,UML統(tǒng)一建模語言脫穎而出,成為軟件建模領(lǐng)域的佼佼者。因此當(dāng)今的軟件建?;臼茄芯炕赨ML建模的方案。利用UML采用面向?qū)ο蠓椒閃eb應(yīng)用程序建模,可以大大提高系

25、統(tǒng)開發(fā)的效率。</p><p>  隨著面向?qū)ο蠹夹g(shù)逐漸成為當(dāng)前計算機(jī)界關(guān)心的重點(diǎn),它成為當(dāng)今軟件開發(fā)方法的主流。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。當(dāng)然,在Web程序開發(fā)中,開發(fā)人員也經(jīng)常引入面向?qū)ο蠹夹g(shù)。面向?qū)ο筌浖到y(tǒng)設(shè)計的目標(biāo)是在支持可維護(hù)性的同時,提高系統(tǒng)的可復(fù)用性。兩個目標(biāo)

26、存在同時達(dá)成的可能性,一個復(fù)用效率高的系統(tǒng)必定是一個維護(hù)方便的系統(tǒng)。因此,開發(fā)人員往往采用面向?qū)ο蠹夹g(shù)提高信息系統(tǒng)開發(fā)的效率。ASP.NET是創(chuàng)建動態(tài)網(wǎng)頁的一種強(qiáng)大的服務(wù)器端技術(shù),是一種基于 B/S的應(yīng)用程序,可創(chuàng)建交互的Web頁面。ASP.NET頁面的開發(fā),包括數(shù)據(jù)綁定,狀態(tài)保持,母版頁和導(dǎo)航等。</p><p>  作為一個初學(xué)者,我希望自己可以根據(jù)自己所掌握的知識,與當(dāng)前科技的發(fā)展相結(jié)合,使自己更好的掌握

27、所學(xué)的知識,并且更加深入的了解當(dāng)前的科技發(fā)展方向,為以后的工作學(xué)習(xí)打下更加堅實的基礎(chǔ)。</p><p>  1.3 課題研究的主要工作 </p><p>  本文以第三波書店在線銷售系統(tǒng)為背景,研究下面幾個方面的問題: </p><p>  利用Rational Rose和UML,進(jìn)行面向?qū)ο蟮男畔⑾到y(tǒng)的分析與設(shè)計的問題</p><p>  

28、討論如何將建模語言UML及建模工具Rational Rose應(yīng)用到從需求分析到編碼的各個環(huán)節(jié)當(dāng)中。 通過對需求的深入理解使得項目開發(fā)從一開始就能按正確的分析和設(shè)計方法進(jìn)行。此后,借助 UML的一些成熟方法開發(fā)出可行的軟件設(shè)計方案,以編寫出最佳的軟件實現(xiàn),從而明顯提升所開發(fā)軟件的可擴(kuò)展性、易維護(hù)性以及可重用性。 </p><p>  2)利用三層構(gòu)架技術(shù)進(jìn)行系統(tǒng)設(shè)計及應(yīng)用</p><p> 

29、 利用三層結(jié)構(gòu)實現(xiàn)系統(tǒng)的總體構(gòu)架,使系統(tǒng)的總體構(gòu)架清楚明了,并且通過此三層架構(gòu)的運(yùn)用,使系統(tǒng)適應(yīng)變化、利于維護(hù),同時將各功能模塊分離,有利于協(xié)作開發(fā)并且越來越多的企業(yè)在開發(fā)項目時采用三層結(jié)構(gòu)作為項目的基礎(chǔ)架構(gòu)。</p><p>  3)利用UML建模語言進(jìn)行系統(tǒng)需求分析</p><p>  UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和

30、新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。</p><p>  4)利用用戶控件、封面數(shù)字水印等技術(shù)進(jìn)行頁面及圖片的顯示問題</p><p>  由于系統(tǒng)中多次用到登陸頁面和注冊頁面,這樣我使用了自己制作的一組自定義控件作為用戶控件,這樣不僅可以定義顯示界面,還可以編寫事件處理代碼,當(dāng)多個頁面包括有部分相同的用戶界面時,可以將這些內(nèi)容相同的部

31、分提取出來。</p><p>  數(shù)字水印技術(shù)的使用保護(hù)了自己作品不被侵害,保護(hù)著作權(quán),防止他人盜用受保護(hù)的資源。</p><p><b>  第二章 相關(guān)技術(shù)</b></p><p>  2.1 基于UML語言的建模語言</p><p>  UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它溶入了軟件工程

32、領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。</p><p>  UML的本意是要成為一種標(biāo)準(zhǔn)的統(tǒng)一語言,使得IT專業(yè)人員能夠進(jìn)行計算機(jī)應(yīng)用程序的建模。UML的主要創(chuàng)始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他們最初都有自己的建模方法(OMT、OOSE和Booch),彼此之間存在著競爭。最終,他們聯(lián)合起來

33、創(chuàng)造了一種開放的標(biāo)準(zhǔn)。UML成為"標(biāo)準(zhǔn)"建模語言的原因之一在于,它與程序設(shè)計語言無關(guān)。(IBM Rational的UML建模工具被廣泛應(yīng)用于J2EE和.NET開發(fā)。)而且,UML符號集只是一種語言而不是一種方法學(xué)。這點(diǎn)很重要,因為語言與方法學(xué)不同,它可以在不做任何更改的情況下很容易地適應(yīng)任何公司的業(yè)務(wù)運(yùn)作方式。</p><p>  2.1.1 IBM Rational Rose</p&g

34、t;<p> ?。?)IBM Rational Rose</p><p>  IBM Rational軟件工具為開發(fā)人員和開發(fā)團(tuán)隊提供了整個開發(fā)生命周期的支持。單獨(dú)使用時,Rational 軟件的每種工具在其各自市場領(lǐng)域中都處于領(lǐng)先地位。結(jié)合使用時,它們更是提供了無與倫比的自動化和易用性。Rational 軟件工具可以在 Windows、Unix、Linux 和大型機(jī)平臺上使用,并且可以支持絕大多數(shù)

35、語言、IDE 和操作環(huán)境,其中包括:Java、Eclipse、C/C++/C#、Visual Basic .NET、Microsoft .NET、COM/+、CORBA、100 多個針對實時和嵌入式系統(tǒng)開發(fā)人員的開發(fā)環(huán)境,以及最新的Internet/Web 服務(wù)標(biāo)準(zhǔn)。</p><p> ?。?)Rational Rose的特點(diǎn):</p><p>  保證模型和代碼高度一致</p>

36、;<p>  Rose可以實現(xiàn)真正意義上的正向、逆向和雙向工程,可以方便快捷地建立軟件系統(tǒng)的原型模型,可縮短開發(fā)周期,降低維護(hù)成本,大幅度地提高程序的安全性,使編程過程更規(guī)范合理。</p><p><b>  支持多種語言</b></p><p>  用戶可以根據(jù)自己在開發(fā)語言方面的需要靈活選擇不同的版本。</p><p>  為

37、團(tuán)隊開發(fā)提供強(qiáng)有力的支持</p><p>  支持模型的Internet發(fā)布</p><p>  生產(chǎn)使用簡單且定制靈活的文檔</p><p>  支持關(guān)系數(shù)據(jù)庫的建模</p><p>  2.1.2 實體建模</p><p>  軟件行業(yè)中最常被誤解的一個術(shù)語實際上是我們非常熟悉的一個:實體關(guān)系(ER)。這是因為我們

38、經(jīng)常缺少一種能被開發(fā)團(tuán)隊的所有成員理解的共同定義。我們假定團(tuán)隊的每個成員都對與 ER 和 ER 建模相關(guān)的方法學(xué)、語法和機(jī)制(mechanics)有著同樣清楚的理解。</p><p>  ER 建模本身定義了在基于信息的系統(tǒng)的分析和設(shè)計中用到的方法。數(shù)據(jù)庫設(shè)計者通常使用該方法來收集需求,并定義數(shù)據(jù)庫系統(tǒng)的構(gòu)架。該方法的輸出是實體類型、關(guān)系類型和約束條件的清單。</p><p>  2.1.

39、3 UML中的簡單約束</p><p>  不幸的是,ER 建模沒有為 ER 圖的表示定義圖解語法。數(shù)據(jù)庫團(tuán)隊經(jīng)常單獨(dú)使用表示法,并且將 ER 建模限制在關(guān)系數(shù)據(jù)庫設(shè)計的范圍內(nèi)。我們需要一種能讓整個系統(tǒng)開發(fā)團(tuán)隊的成員獲得更廣泛理解的表示法。</p><p>  統(tǒng)一建模語言(UML)是一種分析人員和軟件開發(fā)人員廣泛使用的語言,特別適合 ER 圖的圖形化表示。通過使用 UML,開發(fā)團(tuán)隊受益匪

40、淺,這些獲益包括團(tuán)隊成員間的交流更加簡單,由于該語言是基于原模型的,因而更容易與知識庫集成,標(biāo)準(zhǔn)化輸入/輸出格式(XMI)的使用,應(yīng)用建模和數(shù)據(jù)建模的普遍使用,從分析到實施再到部署的統(tǒng)一表示,以及規(guī)格說明書的完整性。</p><p>  2.2 三層結(jié)構(gòu)技術(shù)在系統(tǒng)中的應(yīng)用</p><p>  2.2.1三層架構(gòu)(3-tier application) </p><p&g

41、t;  ⑴、三層架構(gòu)(3-tier application) 通常意義上的三層架構(gòu)就是將整個業(yè)務(wù)應(yīng)用劃分為:表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。</p><p>  圖2.1 三層結(jié)構(gòu)之間的關(guān)系</p><p>  1)、表示層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個系統(tǒng)的時候他的所見所得。</p&g

42、t;<p>  2)、業(yè)務(wù)邏輯層(BLL):針對具體問題的操作,也可以說是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。</p><p>  業(yè)務(wù)邏輯層(Business Logic Layer)無疑是系統(tǒng)架構(gòu)中體現(xiàn)核心價值的部分。它的關(guān)注點(diǎn)主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計,也即是說它是與系統(tǒng)所應(yīng)對的領(lǐng)域(Domain)邏輯有關(guān)。</p><p>  

43、業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設(shè)計對于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計時,遵循了面向接口設(shè)計的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個支持可抽取、可替換的“抽屜”式架構(gòu)。正因為如此,業(yè)務(wù)邏輯層的設(shè)計對于一

44、個支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因為它扮演了兩個不同的角色。對于數(shù)據(jù)訪問層而言,它是調(diào)用者;對于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實現(xiàn)依賴關(guān)系的解耦,則是除了實現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計師的任務(wù)。</p><p>  3)、數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。</p><p>  數(shù)據(jù)訪問層:有時候也稱為

45、是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問,可以訪問數(shù)據(jù)庫系統(tǒng)、二進(jìn)制文件、文本文檔或是XML文檔。簡單的說法就是實現(xiàn)對數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會包括對象和數(shù)據(jù)表之間的mapping,以及對象實體的持久化。</p><p>  2.2.2如何建立三層構(gòu)架</p><p>  決定如何劃分你的層(是物理的還是不是物理的)

46、是非常重要的。在劃分時應(yīng)考慮下面因素:</p><p>  1、注意如果劃分成物理層,你的應(yīng)用程序的速度會因為不同服務(wù)器在網(wǎng)絡(luò)中通信的延遲而減慢。所以,如果你決定用物理層,請確保獲得性能的提升大于性能的降低。</p><p>  2、按照n層架構(gòu)設(shè)計你的應(yīng)用程序。</p><p>  3、部署以及維護(hù)物理分布式的應(yīng)用程序的成本是很高的。你首先需要不止一臺服務(wù)器,你還

47、需要網(wǎng)絡(luò)硬件來連接這些服務(wù)器。在這種情況下,部署應(yīng)用變得更加復(fù)雜!因此這樣做之前請確定這樣做是否值得。</p><p>  另外還要注意,你的應(yīng)用程序的每層都做何使用。你也許因為運(yùn)行的多個服務(wù)都需要某一層而把該層放到別臺服務(wù)器上。例如,你也許會因為給不同的用戶定制不同的表現(xiàn)層,而將業(yè)務(wù)邏輯層放于別處;你也許會因為還有其它的應(yīng)用訪問同一個數(shù)據(jù)庫,而把SQL server服務(wù)放到別處。 </p>

48、<p>  2.3 用戶控件的應(yīng)用</p><p>  在 ASP.NET 中,使用與 ASP.NET 頁相同的語法,以聲明方式創(chuàng)作的服務(wù)器控件。該控件用 .ascx 擴(kuò)展名保存為文本文件。用戶控件允許對頁功能進(jìn)行分區(qū)和重用。第一次請求時,頁框架立即將用戶控件分析為從System.Web.UI.UserControl 派生的類,并將該類編譯到一個程序集中;頁框架在后面的請求中將重用該程序集。因為用戶

49、控件不需要預(yù)編譯就可以進(jìn)行頁面樣式創(chuàng)作和部署,所以開發(fā)起來很容易。</p><p>  通常,開發(fā)服務(wù)器控件有兩種方法:</p><p>  第一種方法:就是所說的自定義控件開發(fā),即繼承如Control的基類實現(xiàn)服務(wù)器控件。</p><p>  第二種方法:即開發(fā)用戶控件。創(chuàng)建用戶控件與創(chuàng)建普通ASP.NET Web頁面類似,但是如同簡述的那樣,它們會有些不同。下面

50、列舉了創(chuàng)建用戶控件必須采取的主要步驟:</p><p> ?。?)創(chuàng)建一個擴(kuò)展名為.ascx的文本文件。這是用戶控件和ASP.NET Web頁面的第一個不同點(diǎn),后者使用的擴(kuò)展名為.aspx。</p><p>  (2)在文本文件頂部添加@Control指令,并通過Language屬性來設(shè)置所選擇的編程語言,例如C#。這是用戶控件和Web頁面的第二個不同點(diǎn),后者使用@Page指令而不是@Co

51、ntrol。</p><p> ?。?)向文本文件添加HTML標(biāo)記文本和ASP.NET服務(wù)器控件??梢蕴砑映齢tml、body和form之外的任何HTML標(biāo)記。這是因為用戶控件不能單獨(dú)使用,而必須作為Web頁面的一部分使用。這是用戶控件和Web頁面的第3個不同點(diǎn)。由于Web頁面自身獨(dú)立,因此最終用戶能夠直接訪問它,對于用戶控件則不是這樣。</p><p>  下面圖示為本系統(tǒng)中我使用的一個

52、控件:</p><p>  圖2.2 用戶控件的利用</p><p>  2.4 數(shù)字水印效果的實現(xiàn)</p><p>  數(shù)字水?。―igital Watermark)技術(shù)是將與多媒體內(nèi)容相關(guān)或不相關(guān)的一些標(biāo)示信息直接嵌入多媒體內(nèi)容當(dāng)中,但不影響原內(nèi)容的使用價值,并不容易被人的知覺系統(tǒng)覺察或注意到。通過這些隱藏在多媒體內(nèi)容中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購買者,或

53、者是否真實完整。數(shù)字水印是信息隱藏技術(shù)的一個重要研究方向。</p><p>  數(shù)字水印效果的三種實現(xiàn)方法如下:</p><p><b>  直接編輯每張圖片</b></p><p>  使用圖片編輯工具,對每張圖片進(jìn)行編輯。這種方法可以說是省腦力,費(fèi)人工。</p><p>  編程實現(xiàn)批量編輯圖片</p>

54、<p>  通過編程方式給圖片批量添加數(shù)字水印效果。這種方式解決了上一種方法的問題,不過它也有一個問題,就是破壞了原始圖片。</p><p>  在圖片顯示時,動態(tài)添加數(shù)字水印效果</p><p>  能不能不修改原始圖片,只在服務(wù)器發(fā)送圖片到客戶端前我們做一些處理,動態(tài)的添加水印效果呢?答案是肯定的,就是使用HttpHandler技術(shù)。</p><p>

55、;<b>  2.3 水印圖片</b></p><p>  在我的網(wǎng)站系統(tǒng)中,我是通過創(chuàng)建HttpHandler程序來動態(tài)實現(xiàn)數(shù)字水印效果的。</p><p>  2.5 ASP中session的用法</p><p>  Session其實指的就是訪問者從到達(dá)某個特定主頁到離開為止的那段時間。每一訪問者都會單獨(dú)獲得一個Session。在Web

56、應(yīng)用程序中,當(dāng)一個用戶訪問該應(yīng)用時,Session類型的變量可以供這個用戶在該Web應(yīng)用的所有頁面中共享數(shù)據(jù);如果另一個用戶也同時訪問該Web應(yīng)用,他也擁有自己的Session變量,但兩個用戶之間無法通過Session變量共享信息,而Application類型的變更則可以實現(xiàn)站點(diǎn)多個用戶之間在所有頁面中共享信息。</p><p>  語法:Session.collection|property|method<

57、;/p><p>  集合:Contents 包含已用腳本命令添加到會話中的項目。 StaticObjects 包含通過 <OBJECT> 標(biāo)記創(chuàng)建的并給定了會話作用域的對象。 </p><p>  屬性:CodePage 將用于符號映射的代碼頁。 LCID 現(xiàn)場標(biāo)識。 Sess

58、ionID 返回用戶的會話驗證。 Timeout 應(yīng)用程序會話狀態(tài)的超時時限,以分鐘為單位。 </p><p>  方法:Abandon 該方法破壞 Session 對象并釋放其資源。 </p><p>  事件:global.asa 文件中聲明下列事件的腳本。</p><p&g

59、t;  Session_OnEnd Session_OnStart </p><p>  2.6 購物車的實現(xiàn)原理</p><p>  購物車相當(dāng)于現(xiàn)實中超市的購物車,不同的是一個是實體車,一個是虛擬車而已。用戶可以在購物網(wǎng)站的不同頁面之間跳轉(zhuǎn),以選購自己喜愛的商品,點(diǎn)擊購買時,該商品就自動保存到你的購物車中,重復(fù)選購后,最后將選中的所有商品放在購物車中統(tǒng)一到付款臺結(jié)

60、賬,這也是盡量讓客戶體驗到現(xiàn)實生活中購物的感覺。服務(wù)器通過追蹤每個用戶的行動,以保證在結(jié)賬時每件商品都物有其主。</p><p>  購物車的功能包括以下幾項:</p><p>  把商品添加到購物車,即訂單</p><p>  刪除購物車中已定購的商品</p><p>  修改購物車中某一本圖書的訂購</p><p>

61、;<b>  清空購物車</b></p><p>  顯示購物車中商品清單及數(shù)量、價格</p><p>  實現(xiàn)購物車的關(guān)鍵在于服務(wù)器識別每一個用戶并維持與他們的聯(lián)系。但是HTTP協(xié)議是一種“無狀態(tài)(Stateless)”的協(xié)議,因而服務(wù)器不能記住是誰在購買商品,當(dāng)把商品加入購物車時,服務(wù)器也不知道購物車?yán)镌扔行┦裁?,使得用戶在不同頁面間跳轉(zhuǎn)時購物車無法“隨身攜帶”

62、,這都給購物車的實現(xiàn)造成了一定的困難。</p><p>  目前購物車的實現(xiàn)主要是通過cookie、session或結(jié)合數(shù)據(jù)庫的方式。下面分析它們的機(jī)制及作用。</p><p><b>  1. cookie</b></p><p>  cookie是由服務(wù)器產(chǎn)生,存儲在客戶端的一段信息。它定義了一種Web服務(wù)器在客戶端存儲和返回信息的機(jī)制,c

63、ookie文件它包含域、路徑、生存期、和由服務(wù)器設(shè)置的變量值等內(nèi)容。當(dāng)用戶以后訪問同一個Web服務(wù)器時,瀏覽器會把cookie原樣發(fā)送給服務(wù)器。通過讓服務(wù)器讀取原先保存到客戶端的信息,網(wǎng)站能夠為瀏覽者提供一系列的方便,例如在線交易過程中標(biāo)識用戶身份、安全要求不高的場合避免用戶重復(fù)輸入名字和密碼、門戶網(wǎng)站的主頁定制、有針對性地投放廣告等等。利用cookie的特性,大大擴(kuò)展了WEB應(yīng)用程序的功能,不僅可以建立服務(wù)器與客戶機(jī)的聯(lián)系,因為coo

64、kie可以由服務(wù)器定制,因此還可以將購物信息生成cookie值存放在客戶端,從而實現(xiàn)購物車的功能。用基于cookie的方式實現(xiàn)服務(wù)器與瀏覽器之間的會話或購物車,有以下特點(diǎn):</p><p>  cookie存儲在客戶端,且占用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4KB,足以滿足購物車的要求,同時也減輕了服務(wù)器的負(fù)荷;</p><p>  cookie為瀏

65、覽器所內(nèi)置,使用方便。即使用戶不小心關(guān)閉了瀏覽器窗口,只要在cookie定義的有效期內(nèi),購物車中的信息也不會丟失;</p><p>  cookie不是可執(zhí)行文件,所以不會以任何方式執(zhí)行,因此也不會帶來病毒或攻擊用戶的系統(tǒng);</p><p>  基于cookie的購物車要求用戶瀏覽器必須支持并設(shè)置為啟用cookie,否則購物車則失效;</p><p>  存在著關(guān)于

66、cookie侵犯訪問者隱私權(quán)的爭論,因此有些用戶會禁止本機(jī)的cookie功能。</p><p>  2. session</p><p>  session是實現(xiàn)購物車的另一種方法。session提供了可以保存和跟蹤用戶的狀態(tài)信息的功能,使當(dāng)前用戶在session中定義的變量和對象能在頁面之間共享,但是不能為應(yīng)用中其他用戶所訪問,它與cookie最重大的區(qū)別是,session將用戶在會話期

67、間的私有信息存儲在服務(wù)器端,提高了安全性。在服務(wù)器生成session后,客戶端會生成一個sessionid識別號保存在客戶端,以保持和服務(wù)器的同步。這個sessionid是只讀的,如果客戶端禁止cookie功能,session會通過在URL中附加參數(shù),或隱含在表單中提交等其他方式在頁面間傳送。因此利用session實施對用戶的管理則更為安全、有效。</p><p>  同樣,利用session也能實現(xiàn)購物車,這種

68、方式的特點(diǎn)是:</p><p>  ?  1)session用新的機(jī)制保持與客戶端的同步,不依賴于客戶端設(shè)置;</p><p>  ?  2)與cookie相比,session是存儲在服務(wù)器端的信息,因此顯得更為安全,因此可將身份標(biāo)示,購物等信息存儲在session中;</p><p>  ?  3)ses

69、sion會占用服務(wù)器資源,加大服務(wù)器端的負(fù)載,尤其當(dāng)并發(fā)用戶很多時,會生成大量的session,影響服務(wù)器的性能;</p><p>  ?  因為session存儲的信息更敏感,而且是以文件形式保存在服務(wù)器中,因此仍然存在著安全隱患。</p><p>  3. 連接數(shù)據(jù)庫的方式</p><p>  這也是目前較普遍的模式,在這種方式中,數(shù)據(jù)庫承擔(dān)

70、著存儲購物信息的作用,session或cookie則用來跟蹤用戶。這種方式具有以下特點(diǎn):</p><p>  數(shù)據(jù)庫與cookie分別負(fù)責(zé)記錄數(shù)據(jù)和維持會話,能發(fā)揮各自的優(yōu)勢,使安全性和服務(wù)器性能都得到了提高。</p><p>  每一個購物的行為,都要直接建立與數(shù)據(jù)庫的連接,直至對表的操作完成后,連接才釋放。當(dāng)并發(fā)用戶很多時,會影響數(shù)據(jù)庫的性能,因此,這對數(shù)據(jù)庫的性能提出了更高的要求。&

71、lt;/p><p>  使cookie維持會話有賴客戶端的支持。</p><p><b>  各種方式的選擇:</b></p><p>  雖然cookie可用來實現(xiàn)購物車,但必須獲得瀏覽器的支持,再加上它是存儲在客戶端的信息,極易被獲取,所以這也限制了它存儲更多,更重要的信息。所以一般cookie只用來維持與服務(wù)器的會話,例如國內(nèi)最大的當(dāng)當(dāng)網(wǎng)絡(luò)書

72、店就是用cookie保持與客戶的聯(lián)系,但是這種方式最大的缺點(diǎn)是如果客戶端不支持cookie就會使購物車失效。</p><p>  Session 能很好地與交易雙方保持會話,可以忽視客戶端的設(shè)置。在購物車技術(shù)中得到了廣泛的應(yīng)用。但session的文件屬性使其仍然留有安全隱患。</p><p>  結(jié)合數(shù)據(jù)庫的方式雖然在一定程度上解決了上述的問題,但當(dāng)在購物流程中涉及到對數(shù)據(jù)庫表的頻繁操作,

73、尤其是用戶每選購一次商品,都要與數(shù)據(jù)庫進(jìn)行連接,當(dāng)用戶很多的時候就加大了服務(wù)器與數(shù)據(jù)庫的負(fù)荷。</p><p>  第三章 系統(tǒng)需求分析</p><p>  3.1 系統(tǒng)的功能需求</p><p>  21世紀(jì)以來,人類經(jīng)濟(jì)高速發(fā)展,人們生活發(fā)生了日新月異的變化,特別是計算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社會生活的各個領(lǐng)域。使原本的舊的管理方式越來越不適應(yīng)現(xiàn)在社會的發(fā)展。許

74、多人還停留在以前的跑書店買需要的圖書,網(wǎng)上書店為大家?guī)砹藰O大地方便。我所開發(fā)的第三波書店在線銷售系統(tǒng)基本上實現(xiàn)了在線購物的需求,采用Microsoft Visual Studio 2008作為開發(fā)平臺,使用SQLServer2005作為后臺數(shù)據(jù)庫。本網(wǎng)上書店在線銷售系統(tǒng)是基于B/S架構(gòu),本網(wǎng)站系統(tǒng)的開發(fā)主要是方便用戶足部出戶就可以購買商品,減少供應(yīng)商店面費(fèi)用。</p><p>  本系統(tǒng)共有三類用戶: <

75、/p><p>  普通用戶是指沒有登陸權(quán)限(主要指網(wǎng)絡(luò)用戶),以匿名用戶的身份訪問系統(tǒng)網(wǎng)站。此類用戶主要有瀏覽系統(tǒng)信息、查看商品信息,注冊成為會員。把本網(wǎng)站設(shè)為首頁,添加到收藏夾,聯(lián)系開發(fā)人,查看交款方式,退換貨原則,配送范圍,交易條款,保密協(xié)議等操作。瀏覽的內(nèi)容包括:商品信息、商品分類信息。</p><p>  用戶:這類用戶擁有普通用戶的所有權(quán)限;普通用戶可以注冊成為會員,并根據(jù)會員ID和

76、密碼登陸系統(tǒng),登陸之后可以對更改自己的信息但會員ID做為數(shù)據(jù)庫表主鍵不能修改。會員登陸后可以查看商品信息,查看各種分類商品信息,將商品添加到購物車中,修改購物車中商品數(shù)量,或是刪除某些不想要的商品。</p><p>  系統(tǒng)管理員:系統(tǒng)管理員主要負(fù)責(zé)管理著系統(tǒng)后臺信息;主要有訂單管理,商品管理,會員管理,物流管理和系統(tǒng)管理。訂單管理有未確認(rèn)訂單和已確認(rèn)訂單管理,未付款訂單。商品管理主要有商品添加和商品管理,商品類

77、別添加和商品類別管理。會員管理主要有添加管理員和管理管理員,管理會員。物流系統(tǒng)主要有支付方式添加和管理,配送方式添加和管理,配送地點(diǎn)添加和管理。系統(tǒng)管理主要是上傳管理。 </p><p>  因此,本系統(tǒng)主要功能是對商品進(jìn)行管理規(guī)劃,方便會員購買。</p><p>  3.2 系統(tǒng)設(shè)計思想</p><p>  3.2.1 系統(tǒng)設(shè)計思想</p><

78、p>  書店前臺:功能強(qiáng)大,操作方便。</p><p>  前臺作為與用戶直接交互的界面,在考慮功能的同時,也考慮了操作的簡潔和方便,目的是讓大多數(shù)不懂電腦操作的客戶也能輕松地享受網(wǎng)上購物帶來的極大方便。主要包括以下幾個模塊:</p><p><b>  ① 商品信息展示</b></p><p><b> ?、?用戶注冊<

79、/b></p><p><b> ?、?用戶登陸</b></p><p><b>  ④ 用戶信息修改</b></p><p><b> ?、?購物車管理</b></p><p>  書店后臺:本系統(tǒng)后臺在考慮書店管理操作簡便的同時,提供了強(qiáng)大的書店管理模式。主要包括以下

80、幾個模塊:</p><p><b>  ① 訂單管理</b></p><p><b> ?、?商品管理</b></p><p><b> ?、?用戶管理</b></p><p><b> ?、?物流管理</b></p><p>&l

81、t;b> ?、?系統(tǒng)管理</b></p><p>  3.2.2 系統(tǒng)結(jié)構(gòu)設(shè)計</p><p><b> ?、?參與者匯總</b></p><p>  游 者:查看商品信息和注冊成為會員。</p><p>  會 員:查看商品信息和購買商品,修改個人信息等。</p><p>

82、  管理員:管理商品信息,管理用戶信息等。</p><p> ?、?前臺流程:用戶登錄用戶登陸</p><p>  用戶注冊→用戶登錄→查看圖書信息→添加圖書到購物車→在線支付</p><p><b>  ③ 后臺流程:</b></p><p>  管理員登錄→訂單管理、圖書管理、用戶管理、圖片管理→退出</p&g

83、t;<p>  網(wǎng)上購物系統(tǒng)為顧客提供一個類似于超級市場的網(wǎng)絡(luò)界面。通過網(wǎng)絡(luò)界面,用戶登錄后執(zhí)行各種操作,沒有注冊的用戶可以查找商品信息,查看首頁面的最受歡迎商品等信息。</p><p>  圖3.1 第三波書店系統(tǒng)流程圖</p><p><b>  1.系統(tǒng)邏輯</b></p><p>  這一階段的主要目標(biāo)是明確用戶的信息需求

84、,系統(tǒng)管理管理人員完成各自工作任務(wù)的信息需求。確定系統(tǒng)的邏輯功能,提出系統(tǒng)的邏輯方案,是系統(tǒng)分析階段的最終成果,是系統(tǒng)分析的最后一項活動,也是形成系統(tǒng)分析結(jié)果的關(guān)鍵工作,這一階段不但要利用前幾個活動的工作成果,而且要在此基礎(chǔ)上進(jìn)一步調(diào)查、明確問題、進(jìn)行創(chuàng)新。</p><p>  本系統(tǒng)的邏輯模型主要以數(shù)據(jù)流圖和數(shù)據(jù)字典為描述工具。在對在線銷售系統(tǒng)的管理方式和業(yè)務(wù)流程進(jìn)行分析和研究的基礎(chǔ)上,通過對系統(tǒng)的初步調(diào)查和詳

85、細(xì)調(diào)查,按信息系統(tǒng)中應(yīng)有的數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)來勾畫系統(tǒng)的概貌。</p><p><b>  2.數(shù)據(jù)流圖</b></p><p>  數(shù)據(jù)流圖四種基本成分組成:外部項(外部實體)、加工(數(shù)據(jù)加工)、數(shù)據(jù)存儲、數(shù)據(jù)流。數(shù)據(jù)流圖基本圖例,如圖3.2所示。</p><p>  圖3.2 基本數(shù)據(jù)流圖</p><p>  本書店在

86、線銷售系統(tǒng)訂單審核數(shù)據(jù)流程圖為例,其頂層數(shù)據(jù)流圖,如圖3.4所示。</p><p>  圖3.3 系統(tǒng)審核訂單數(shù)據(jù)流程圖</p><p>  數(shù)據(jù)流圖重點(diǎn)在描述以處理邏輯為中心的數(shù)據(jù)的流入與流出,而對數(shù)據(jù)本身未加描述,影響了用戶對數(shù)據(jù)流圖的理解。數(shù)據(jù)字典是對數(shù)據(jù)流圖的很好的補(bǔ)充,它是數(shù)據(jù)流圖上所有成分的定義和解釋的文字集合,它是對數(shù)據(jù)流圖的各種成分起注解、說明的作用,同時它還對系統(tǒng)分析中

87、其他需要說明的問題進(jìn)行定義和說明。系統(tǒng)分析人員把不便在數(shù)據(jù)流圖上注明而對于系統(tǒng)分析應(yīng)該獲得,對整個系統(tǒng)開發(fā)以至將來系統(tǒng)運(yùn)行與維護(hù)是必須的信息盡可能放入數(shù)據(jù)字典。</p><p>  數(shù)據(jù)字典對數(shù)據(jù)流圖的描述盡可能說明下列問題:</p><p> ?、?什么?(是什么或是什么)</p><p> ?、?何出?(在何處來或者來自何處,去向何處)</p>&

88、lt;p> ?、?何時?(何時出現(xiàn),時間長短)</p><p>  數(shù)據(jù)字典描述的主要內(nèi)容有:數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲、加工和外部項,其中數(shù)據(jù)元素是組成數(shù)據(jù)流的基本成分。在系統(tǒng)分析中,數(shù)據(jù)字典起著重要的作用。它包含關(guān)于系統(tǒng)詳細(xì)信息。一般說來,系統(tǒng)分析人員把不便在數(shù)據(jù)流圖上注明而對于系統(tǒng)分析應(yīng)該獲得,對整個系統(tǒng)開發(fā)必需的信息,盡可能放入數(shù)據(jù)字典,部分?jǐn)?shù)據(jù)字典如下所示。</p><p>

89、;  表3.4 數(shù)據(jù)字典:數(shù)據(jù)流</p><p>  表3.5 數(shù)據(jù)字典:數(shù)據(jù)元素</p><p>  表3.6 數(shù)據(jù)字典:數(shù)據(jù)存儲</p><p>  第四章 系統(tǒng)數(shù)據(jù)庫設(shè)計及其實現(xiàn)</p><p>  4.1 系統(tǒng)數(shù)據(jù)庫總體設(shè)計</p><p><b>  數(shù)據(jù)庫設(shè)計</b></p

90、><p>  圖4.1 數(shù)據(jù)路設(shè)計圖</p><p>  4.2 部分?jǐn)?shù)據(jù)表的設(shè)計</p><p>  1、Users表包括Id、 LoginId 、LoginPwd、Name、Address、Phone、Mail等,主要為:用戶名和密碼。系統(tǒng)管理員根據(jù)用戶名密碼登陸后臺系統(tǒng)。</p><p>  2、SearchKeyword</p&

91、gt;<p><b>  3、Order</b></p><p>  4、Category</p><p><b>  5、Book</b></p><p>  第五章 系統(tǒng)總體設(shè)計及部分重要模塊的實現(xiàn)</p><p>  5.1 部分界面的展示 </p><p&g

92、t; ?、盼业牡谌〞甑闹鹘缑妫?lt;/p><p>  圖5.1我的第三波書店的主界面</p><p><b> ?、莆业馁徫镘嚱缑妫?lt;/b></p><p>  圖5.2 我的購物車界面</p><p>  ⑶圖書分類搜索界面:</p><p>  圖5.3 圖書分類搜索界面</p>

93、<p>  5.2 三層結(jié)構(gòu)的實現(xiàn)</p><p>  5.2.1 三層結(jié)構(gòu)的優(yōu)勢</p><p>  搭建第三波書店的三層架構(gòu)前,我們知道三層結(jié)構(gòu)有如下優(yōu)勢:</p><p>  適應(yīng)變化、利于維護(hù):項目需求往往隨市場的變化而發(fā)生變化,三層結(jié)構(gòu)通過將各功能模塊分離,提高了項目的可維護(hù)性和代碼的課重用性。</p><p>  適

94、用于協(xié)作開發(fā):現(xiàn)在的項目往往是很多人參與開發(fā),有人專門負(fù)責(zé)頁面的設(shè)計和開發(fā),有人負(fù)責(zé)數(shù)據(jù)庫操作的相關(guān)模塊,三層結(jié)構(gòu)將各功能模塊分離,有利于協(xié)作開發(fā)。</p><p>  主流趨勢:越來越多的企業(yè)在開發(fā)項目時采用三層結(jié)構(gòu)作為項目的基礎(chǔ)架構(gòu)。三層結(jié)果將來會有更多的市場。</p><p>  5.2.2 三層結(jié)構(gòu)的系統(tǒng)構(gòu)建</p><p>  基于以上幾點(diǎn)內(nèi)容的考慮,我采

95、用三層結(jié)構(gòu)的設(shè)計方式,搭建第三波書店的系統(tǒng)構(gòu)架。</p><p><b>  ⑴模型層</b></p><p>  模型層包含所有與數(shù)據(jù)庫有關(guān)的的表相對應(yīng)得實體類。可以說,模型層提供了一個標(biāo)準(zhǔn)、規(guī)范,三層之間德 數(shù)據(jù)傳遞就是通過傳輸實體對象來達(dá)到目的的。</p><p><b> ?、倌P偷拿?lt;/b></p>

96、<p>  命名其實就是約定俗稱的規(guī)矩。一般模型的項目名稱為Model或者M(jìn)odels,模型層中的實體類一般和所對應(yīng)的表名一致。</p><p><b> ?、陬惤Y(jié)構(gòu)</b></p><p>  實體類一般比較簡單,根據(jù)數(shù)據(jù)庫的字段編寫對應(yīng)的變量和屬性。除了構(gòu)造函數(shù)外,實體類一般沒有其他方法。</p><p><b> 

97、 ③注意事項</b></p><p>  序列化:實體對象作為數(shù)據(jù)的載體,常常需要在不同的途徑中進(jìn)行傳遞,為了保證數(shù)據(jù)傳遞的正確性,我實體類標(biāo)記為可序列化。</p><p><b>  外鍵的處理</b></p><p>  舉例來說,用戶有狀態(tài)之分(有效、無效),也有角色之分(普通用戶、VIP或者管理員)。這些內(nèi)容在數(shù)據(jù)庫中表現(xiàn)為

98、外鍵關(guān)系,如何處理這種關(guān)系?一般有兩種方式:使用外鍵表的ID或者使用外鍵對象。</p><p> ?、茢?shù)據(jù)訪問層。數(shù)據(jù)訪問層封裝了所有與數(shù)據(jù)交互的操作。數(shù)據(jù)交互無非就是增刪查改,數(shù)據(jù)訪問層就是針對每一個數(shù)據(jù)表提供增刪查改操作,不做業(yè)務(wù)邏輯的操作判斷。</p><p> ?、贁?shù)據(jù)訪問層的命名數(shù)據(jù)訪問層的項目一般命名為DAL,或解決方案名+DAL。在我的項目中,命好為MyBookShopDAL

99、,命名空間是MyBookShop.DAL。</p><p>  針對模型層中的每個類,數(shù)據(jù)訪問層有一個對應(yīng)的數(shù)據(jù)訪問類。例如針對U實體類,有一個對應(yīng)的類,專門處理相關(guān)表的數(shù)據(jù)處理。</p><p><b> ?、诜椒ǚ治?lt;/b></p><p>  數(shù)據(jù)訪問層就是處理數(shù)據(jù)的增、查、改、刪,所以處理方法也圍繞在這四個處理上。</p>

100、<p><b>  增(Create)</b></p><p>  一般增加的方法很簡單,針對用戶類的增加方法如下:</p><p>  public static User AddUser(User user) </p><p>  查(Rrtrieve)</p><p><b>  典型的查找

101、如下:</b></p><p>  public static IList<User> GetAllUsers()</p><p>  public static void ModifyUserStatusById(int userId)</p><p>  public static bool AdminLogin(string login

102、Id, string loginPwd, out User validUser)</p><p><b>  改(Update)</b></p><p>  修改的方法也很單一,典型的有:</p><p>  public static void ModifyUser(User user)</p><p><b&g

103、t;  刪(Delete)</b></p><p><b>  典型的刪除方法有:</b></p><p>  public static void DeleteUser(User user)</p><p>  public static void DeleteUserById(int id)</p><p&

104、gt;  public static void DeleteUserByLoginId(string loginId)</p><p>  總的來說,數(shù)據(jù)訪問層就是增、刪、查、改,它不需要進(jìn)行業(yè)務(wù)邏輯的判斷。</p><p><b> ?、菢I(yè)務(wù)邏輯層</b></p><p>  業(yè)務(wù)邏輯層是表示層與數(shù)據(jù)訪問層的橋梁,負(fù)責(zé)業(yè)務(wù)處理和數(shù)據(jù)的傳遞。該

105、部分的方法一般與實際的需求相關(guān),比如用戶注冊,雖然它也是在數(shù)據(jù)庫中添加一條記錄,但一般不以AddUser作為方法名,而是使用Register。事實上,用戶注冊也不僅僅是添加一條記錄那么簡單的事,它還包含了驗證登陸名是否已經(jīng)存在等業(yè)務(wù)邏輯。</p><p><b> ?、贅I(yè)務(wù)邏輯層的命名</b></p><p>  在我的項目中,命好為MyBookShopBLL,命名空

106、間是MyBookShop.BLL</p><p><b> ?、诜椒ǚ治?lt;/b></p><p>  業(yè)務(wù)邏輯層應(yīng)該就是提供哪些方法一般根據(jù)實際需求來確定。比如頁面上有用戶登陸的功能,我們就可以考慮在業(yè)務(wù)邏輯層就創(chuàng)建一個對應(yīng)的用戶登陸的方法。</p><p><b> ?、?表示層</b></p><p

107、>  ①表示層負(fù)責(zé)內(nèi)容的展現(xiàn)和與用戶的交互。它給予用戶直接的體驗,可以說前面的幾層都是基礎(chǔ),表示層是最終的應(yīng)用。在ASP.NET中,表示層就是整個WEB站點(diǎn)。具體的內(nèi)容要根據(jù)需求的內(nèi)容而來。比如第三波書店,有自己的用戶系統(tǒng),自然需要有相關(guān)的用戶登陸、注冊、管理等頁面;圖書系統(tǒng),也就要有圖書管理、圖書列表、圖書詳細(xì)展示等頁面;在線銷售,還需要有購物車、訂單管理等頁面。</p><p><b>  ②

108、方法分析</b></p><p>  ASP.NET 程序員來說,表示層就是控制+事件,如果僅僅是展示,可能只需要將控件綁定數(shù)據(jù)即可,不需要編寫代碼;如果需要和用戶交互,就要編寫相關(guān)的事件代碼。比如登陸頁面,用戶單擊“登錄按鈕”的事件可能需要編寫代碼驗證用戶的輸入內(nèi)容是否合法,然后通過業(yè)務(wù)邏輯層的相關(guān)方法判斷用戶名和密碼是否匹配。</p><p>  5.2.3 三層結(jié)構(gòu)的系統(tǒng)

109、</p><p>  圖5.4 第三波書店在線銷售系統(tǒng)的三層</p><p>  如圖所示為第三波書店在線銷售系統(tǒng)的三層架構(gòu)。我在構(gòu)建此系統(tǒng)時分別建立三個類庫,每個類庫中寫入相應(yīng)的方法,當(dāng)需要使用它們時,在合適的windows窗體下添加適當(dāng)?shù)囊?,近可以實現(xiàn)最此的引用。</p><p>  5.3 登陸及注冊新用戶的實現(xiàn)</p><p>&

110、lt;b>  5.3.1用戶登陸</b></p><p><b>  用戶登陸界面:</b></p><p>  圖5.5 用戶登錄界面</p><p>  用戶登陸的代碼實現(xiàn):</p><p>  public static bool Login(string loginId, string log

111、inPwd, out User validUser)</p><p><b>  {</b></p><p>  User user = UserService.GetUserByLoginId(loginId);</p><p>  if (user == null)</p><p><b>  {</

112、b></p><p><b>  //用戶名不存在</b></p><p>  validUser = null;</p><p>  return false;</p><p><b>  }</b></p><p>  if (user.LoginPwd == lo

113、ginPwd)</p><p><b>  {</b></p><p>  validUser = user;</p><p>  return true;</p><p><b>  }</b></p><p><b>  else</b></p

114、><p><b>  {</b></p><p><b>  //密碼錯誤</b></p><p>  validUser = null;</p><p>  return false;</p><p>  } } </p><p>  pub

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論