


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
推薦系統(tǒng)開發(fā)使用技術(shù)簡介,軟件工程論文本篇論文目錄導(dǎo)航:【題目】【第一章】【第二章】推薦系統(tǒng)開發(fā)使用技術(shù)簡介【3.1-3.2】【3.3】【3.4】【第四章】【總結(jié)/以下為參考文獻(xiàn)】第2章使用技術(shù)簡介2.1ASP.NETMVC框架簡介。2.1.1MVC框架簡介。MVC框架是view-model-controller的英文單詞的首字母縮寫,使用MVC〔ModelViewController模型-視圖-控制器〕框架設(shè)計(jì)開創(chuàng)建立Web應(yīng)用程序[6].MVC興起之初是用在桌面程序中的,是施樂帕克研究中在八十年代為Smalltalk-80開發(fā)語言設(shè)計(jì)的一種軟件框架[7],如今被應(yīng)用在各種程序開發(fā)活動(dòng)中。MVC使用一種將業(yè)務(wù)邏輯、數(shù)據(jù)存儲(chǔ)、用戶界面顯示三大模塊相互分離的方式方法來組織代碼構(gòu)造,其最初是希望將模型和視圖的code實(shí)現(xiàn)分別進(jìn)行,將業(yè)務(wù)邏輯的實(shí)現(xiàn)單獨(dú)集中到一個(gè)模塊里面,到達(dá)以后需要改良或個(gè)性化定制用戶界面時(shí),不必重新編寫業(yè)務(wù)邏輯的實(shí)現(xiàn)部分,進(jìn)而使同一塊code實(shí)現(xiàn)的功能能夠使用不同的形式表現(xiàn)出來,到達(dá)代碼重用的目的。〔1〕視圖模塊〔View〕:就本文而言,視圖模塊就是指音樂網(wǎng)站的用戶頁面,是訪問站點(diǎn)時(shí)夠看到并與進(jìn)行操作,進(jìn)而和網(wǎng)站之進(jìn)行互動(dòng)的界面。視圖模塊〔頁面〕其實(shí)就是由一系列元素構(gòu)成的web頁面,但是很多的新技術(shù)也被應(yīng)用,華而不實(shí)就有Flash和XML/XSL,WML等語言和Webservices[8].使用MVC一最明顯的改良是它能為你的web程序處理很多個(gè)頁面,當(dāng)用戶在頁面進(jìn)行某種操作時(shí),view本身并不對這些操作進(jìn)行操作和響應(yīng),它只是單純的采集信息,顯示結(jié)果〔modle返回的〕。〔2〕模型模塊〔Modle〕:模型模塊是web應(yīng)用程序的核心組成部分,是程序中實(shí)際用來處理應(yīng)用程序業(yè)務(wù)邏輯的部分,模型模塊負(fù)責(zé)從數(shù)據(jù)庫中存取數(shù)據(jù)并進(jìn)行處理。在這三個(gè)模塊中,Modle處理的業(yè)務(wù)是最多的,所有的對數(shù)據(jù)庫的增刪查改等操作都是由modle執(zhí)行的[9].模型模塊處理后返回的結(jié)果與數(shù)據(jù)的格式?jīng)]有關(guān)系的,這樣一來同一個(gè)modle就能為多個(gè)view處理并返回?cái)?shù)據(jù)。只需編寫一個(gè)模型就能夠被多個(gè)頁面反復(fù)使用,增加了代碼的復(fù)用率?!?〕控制器〔Controller〕:控制器采集人員在page中的輸入并調(diào)用modle和view去計(jì)算并返還用戶需要的結(jié)果。所以當(dāng)Web頁面中有相關(guān)操作時(shí),Controller模塊自個(gè)并不做任何響應(yīng)[10],比方數(shù)值計(jì)算或頁面的輸出等,它只是簡單接受來自頁面的訪問請求,并根據(jù)這些請求的詳細(xì)類型來調(diào)用對應(yīng)的的模塊去處理,并最終決定在哪個(gè)view頁面接受并顯示modle模塊計(jì)算、返回的數(shù)據(jù)。根據(jù)上文的介紹能夠總結(jié)出使用MVC的網(wǎng)站的業(yè)務(wù)流程,首先網(wǎng)站使用者在頁面進(jìn)行操作,由Controller模塊接收這些操作對應(yīng)的請求,交給適宜的Modle模塊進(jìn)行計(jì)算,而功能實(shí)現(xiàn)code在Modle模塊中進(jìn)行,當(dāng)Modle模塊的運(yùn)算完成后,將結(jié)果〔數(shù)據(jù)〕返回Controller,并且Controller用對應(yīng)的View〔頁面〕格式化收到的數(shù)據(jù),并通過網(wǎng)站頁面展示給用戶。使用了MVC意味著我們在設(shè)計(jì)的時(shí)候要考慮各個(gè)功能的封裝和分離,會(huì)有些冗余的工作量,但是考慮到它給我們帶來更多的方便還是值得采用的。2.1.2MVC框架的優(yōu)、缺點(diǎn)。MVC框架的優(yōu)點(diǎn)是代碼構(gòu)造清楚明晰、可重用性高、分工明確[11]:首先,使用MVC框架能夠使程序的構(gòu)造清楚明晰明了,復(fù)用率更高層次;華而不實(shí)最核心要素是在多個(gè)不同web頁面中處理操作時(shí)能夠使用同一個(gè)業(yè)務(wù)模塊〔模型〕。由于Modle模塊是封裝完成的,并且與Controller和view頁面相分離,因而能夠輕易改變web網(wǎng)頁的數(shù)據(jù)模塊和業(yè)務(wù)規(guī)則。由于使用MVC框架的web站點(diǎn)的三個(gè)部件是各自分開設(shè)計(jì)并實(shí)現(xiàn)的,假如只是單獨(dú)修改華而不實(shí)任意模塊并不會(huì)對其他兩部分的實(shí)現(xiàn)造成連鎖效應(yīng),所以采用這種設(shè)計(jì)框架能設(shè)計(jì)出良好的重用性強(qiáng)、松偶合的構(gòu)件。其次,由于整個(gè)web站點(diǎn)被分為三部分分別實(shí)現(xiàn),因而用戶定制頁面時(shí)產(chǎn)生的新功能影響比擬小,可能只修改華而不實(shí)一個(gè)模塊就能實(shí)現(xiàn)。同樣的,在編程人員構(gòu)造復(fù)雜的頁面程序時(shí)為了實(shí)現(xiàn)不同的功能模塊,可能會(huì)需要使用很多不同的Modle模塊及View視圖,這時(shí),使用Controller模塊能夠輕易的將這些沒有關(guān)聯(lián)的模塊組合起來,完成相應(yīng)的功能來相應(yīng)客戶的請求。最后,使用MVC框架在簡化軟件工程化管理[12]方面有很大的作用。由于三個(gè)不同的模塊只負(fù)責(zé)自個(gè)的業(yè)務(wù)功能,而各層的應(yīng)用在實(shí)現(xiàn)時(shí)往往都具有很多類似的特點(diǎn),這樣使得開發(fā)人員能夠?qū)⒕窦性诟髯缘哪K,有利于這些人員熟悉自個(gè)模塊的邏輯。當(dāng)然,MVC分層式構(gòu)造由于其設(shè)計(jì)原因也有一些缺點(diǎn):首先,降低了軟件的性能。假如不采用MVC框架,很多功能處理模塊能夠直接對系統(tǒng)數(shù)據(jù)庫進(jìn)行操作,如今卻必須中轉(zhuǎn)一次,通過一個(gè)中介層來進(jìn)行這些數(shù)據(jù)操作。其次,有時(shí)會(huì)導(dǎo)致屢次連帶的修改。這種連帶關(guān)系在自View向Modle的方向中具體表現(xiàn)出最為突出。假如為了知足CI必須在View添加一個(gè)新業(yè)務(wù)模塊,為保證系統(tǒng)整體架構(gòu)嚴(yán)格遵循MVC構(gòu)造,就要在后臺(tái)的業(yè)務(wù)層實(shí)現(xiàn)部分和數(shù)據(jù)層中都添加對應(yīng)的編程實(shí)現(xiàn),支持相關(guān)的業(yè)務(wù)??傮w來看,MVC框架是一種非常好的開創(chuàng)建立web程序的思路,它所規(guī)定的一些設(shè)計(jì)準(zhǔn)則,像邏輯處理和頁面顯示相互分離比擬簡單易懂。但是假如要分離Model、View和Control的模塊,你可能需要從頭設(shè)計(jì)你的應(yīng)用程序的整體構(gòu)架。假如你愿意使用MVC框架,并且有足夠的技術(shù)積累來處理它帶來的額外的工作量和復(fù)雜度[13]2.2Ajax簡介。AJAX是AsynchronousJavascriptAndXML〔異步JavaScript和XML〕的縮寫。它是用來開創(chuàng)建立交互式web應(yīng)用的編程技術(shù)[14].使用這種技術(shù),能夠在客戶端不重新刷新整個(gè)網(wǎng)站信息的情況下,只與Server端進(jìn)行少量的數(shù)據(jù)交換,對網(wǎng)站中的某些模塊進(jìn)行異步更新。AJAX并不是程序設(shè)計(jì)語言,而是一種新的web技術(shù),使用它能夠設(shè)計(jì)出交互性[15]更強(qiáng)并且響應(yīng)速度更快的〔由于能夠只更新部分〕Web應(yīng)用程序Ajax的優(yōu)點(diǎn)有很多:學(xué)習(xí)曲線較為平滑:AJAX不是一種新的編程語言,它所使用的很多技術(shù)都是從已有技術(shù)中借用的,因此方便開發(fā)人員學(xué)習(xí)和把握。能夠使用JS代碼向Server提出前端操作產(chǎn)生的相應(yīng)請求,并處理Server返回的響應(yīng)數(shù)據(jù),在這一經(jīng)過中并不會(huì)阻塞頁面的應(yīng)用。通過其核心對象XMLHTTPRequest,JS可在不重新刷新整個(gè)page的前提下與Web服務(wù)器進(jìn)行一系列數(shù)據(jù)交換。在閱讀器與Web服務(wù)器之間使用異步的數(shù)據(jù)傳送方式,這一網(wǎng)頁能夠根據(jù)實(shí)際操作針對性的從服務(wù)器讀取某個(gè)功能模塊所需的數(shù)據(jù),而不是整個(gè)頁面,也就是講能夠只交換一部分?jǐn)?shù)據(jù),減少了數(shù)據(jù)傳輸量。AJAX技術(shù)的使用使web網(wǎng)頁程序code規(guī)模更小、響應(yīng)速速更快,用戶界面更友好。2.3Entityframework技術(shù)簡介。ADO.NETEntityFramework是微軟以ADO.NET為基礎(chǔ)所發(fā)展出來的對象關(guān)系對應(yīng)〔O/RMapping〕解決方案[16].一直以來,開發(fā)人員和數(shù)據(jù)庫模塊一直都有密切的聯(lián)絡(luò),在實(shí)際發(fā)布并應(yīng)用的商業(yè)軟件中,數(shù)據(jù)庫是必定存在的模塊,這讓就使得開發(fā)人員為了連接與訪問數(shù)據(jù)庫就必須去學(xué)習(xí)相關(guān)的數(shù)據(jù)庫操作指令。當(dāng)前在計(jì)算機(jī)相關(guān)學(xué)科中有很多研究人員都在討論怎樣將業(yè)務(wù)模型和數(shù)據(jù)庫集成在一起。對象關(guān)系對應(yīng)〔Object-RelationalMapping〕的技術(shù)就是由此而生,如Hibernate或NHibernate都是隨之而出現(xiàn)的產(chǎn)品。微軟通常使用ADO.NET來進(jìn)行數(shù)據(jù)訪問,但卻沒有對應(yīng)的數(shù)據(jù)庫操作工具,像NHibernate這樣。因而微軟在。NETFramework2.0中,提出了ObjectSpace,ObjectSpace能夠讓web程序能夠使用面向?qū)ο蟮姆绞椒椒ㄟB接并操作數(shù)據(jù)庫,其設(shè)計(jì)理念與NHibernate非常接近。但是由于ObjectSpace的工程非常大,在。NETFramework2.0發(fā)布完成時(shí)還沒有全部實(shí)現(xiàn),因而微軟將它納入下一版本的。NETFramework中,并且再加上一個(gè)設(shè)計(jì)的工具〔Designer〕,構(gòu)成了如今的ADO.NETEntityFramework.EntityFramework將DB中的每個(gè)對象都轉(zhuǎn)換成應(yīng)用程序?qū)ο骩17],華而不實(shí)的字段都改變?yōu)閷傩?,關(guān)系則改變?yōu)閷?dǎo)航屬性,這樣就將復(fù)雜的數(shù)據(jù)庫E/R模型轉(zhuǎn)化成編程人員非常熟悉的對象模型,這樣開發(fā)人員就像平常編程一樣直接操作對象而不用直接面對數(shù)據(jù)庫構(gòu)造,相當(dāng)于為開發(fā)人員提供了code與數(shù)據(jù)構(gòu)造的中間轉(zhuǎn)換,方便開發(fā)者能用熟悉的開發(fā)語言來操作數(shù)據(jù)庫。提供支持的模塊,則是已經(jīng)被高度集成的與DB構(gòu)造對應(yīng)的概念層、儲(chǔ)存層,以及支持EntityFramework的數(shù)據(jù)提供者〔provider〕,使得編程人員能夠方便的操作數(shù)據(jù)庫。ADO.NETEntityFramework的整體架構(gòu)圖。〔1〕概念層:負(fù)責(zé)向其上各層提供的對象與屬性的顯示與訪問支持,概念層構(gòu)造聲明并定義了對象模型〔ObjectModel〕,通過這一層,上層的應(yīng)用程序能夠使用面向?qū)ο蟮姆绞皆L問數(shù)據(jù),概念層構(gòu)造是使用CSDL〔ConceptualSchemaDefinitionLanguage〕編寫?!?〕對應(yīng)層:對應(yīng)層負(fù)責(zé)確認(rèn)接收到的數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)殖合作協(xié)議合同范本
- 加工及測試合同范本
- 2025年錫林郭勒盟c1貨運(yùn)從業(yè)資格證模擬考試題
- 東莞物業(yè)服務(wù)合同范本
- 六座車買賣合同范本
- 買賣貨款利息合同范本
- 勞動(dòng)關(guān)系托管合同范本
- 勞務(wù)服務(wù)費(fèi)合同范本
- 萬瑞地產(chǎn)合同范本
- 辦公商品采購合同范本
- 歷史類常識考試100題帶答案(能力提升)
- MOOC 研究生學(xué)術(shù)規(guī)范與學(xué)術(shù)誠信-南京大學(xué) 中國大學(xué)慕課答案
- 大學(xué)生生涯發(fā)展報(bào)告新能源汽車
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規(guī)程
- 部編人教版五年級《道德與法治》下冊教學(xué)計(jì)劃及教學(xué)進(jìn)度
- 護(hù)理干預(yù)在慢性病管理中的作用
- 2024年七年級下冊《道德與法治》全冊教案
- 湖南有色金屬職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
- 托幼托育工作總結(jié)
- (完整word版)體檢報(bào)告單模版
- 2024年河南水利與環(huán)境職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論