亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ASP.NET MVC設(shè)計(jì)之美

        2016-05-14 20:09:35穆海明劉盼齊斌
        藝術(shù)科技 2016年8期
        關(guān)鍵詞:三層架構(gòu)視圖路由

        穆海明 劉盼 齊斌

        摘 要:隨著國(guó)內(nèi)電商平臺(tái)的發(fā)展,網(wǎng)站的需求變得越來越大,開發(fā)網(wǎng)站的技術(shù)雖然很多,但真正主流的不過只有幾種,而ASP.NET MVC便是很好的一種選擇。ASP.NET MVC它是微軟的一個(gè)web開發(fā)框架,融合了敏捷開發(fā)的思想與技術(shù)和asp.net平臺(tái)的精華部分,正是設(shè)計(jì)網(wǎng)站的最好方式之一。本文將介紹ASP.NET MVC框架的內(nèi)容,以及如何便捷地開發(fā)網(wǎng)站,僅此希望這門技術(shù)為IT行業(yè)的發(fā)展帶來巨大進(jìn)步。

        關(guān)鍵詞:MVC;控制器;視圖;模型;路由;三層架構(gòu)

        1 MVC模式

        1.1 控制器(Controller)

        MVC模式中的控制器(Controller)主要負(fù)責(zé)響應(yīng)用戶的輸入,并且在響應(yīng)時(shí)修改模型(model)。通過這種方式,MVC模式中的控制器主要關(guān)注的是應(yīng)用程序流、輸入數(shù)據(jù)的處理,以及對(duì)相關(guān)視圖輸出數(shù)據(jù)的提供。從本質(zhì)上來講,控制器只是簡(jiǎn)單的C#類,在控制器中的每一個(gè)public方法都稱為一個(gè)動(dòng)作方法,即可以用某個(gè)URL通過web來調(diào)用它,以執(zhí)行一個(gè)動(dòng)作。MVC約定,把控制器都放在一個(gè)名為Controller的文件夾中,這是Visual Studio在建立項(xiàng)目時(shí)為用戶自動(dòng)創(chuàng)建的。這項(xiàng)約定雖然不一定要遵循,單遵循著一約定會(huì)為開發(fā)帶來很大的便捷,也就是常說的約定大于配置。

        1.2 視圖(View)

        視圖的職責(zé)是向用戶提供用戶界面。當(dāng)控制器針對(duì)被請(qǐng)求的URL執(zhí)行完合適的邏輯后,就將要顯示的內(nèi)容委托給視圖。不像基于文件的Web框架,比如ASP.NET Web Forms和PHP,視圖本身不會(huì)被直接訪問,瀏覽器不能直接指向一個(gè)視圖并渲染它。相反,視圖總是被控制器渲染,因?yàn)榭刂破鳛樗峁┝艘秩镜臄?shù)據(jù)。目前為止控制器操作只是簡(jiǎn)單的調(diào)用了return View()來進(jìn)行渲染,還不需要指定視圖的文件名??梢赃@么做,是因?yàn)樗鼈兝昧薃SP.NET MVC框架的一些隱式約定,這些約定定義了視圖選擇邏輯。記住之前在控制器所說的“約定大于配置”在這里依然適用。這是ASP.NET MVC相對(duì)于Form的進(jìn)步之處,也是它的特色。

        Razor視圖引擎是ASP.NET MVC 3中新擴(kuò)展的內(nèi)容,并且他是默認(rèn)視圖引擎,Razor為視圖提供一種精簡(jiǎn)的語法,最大限度地減少了語法和額外的字符。這樣就有效地減少了語法障礙,并且在視圖標(biāo)記語言中也沒有新的語法規(guī)則。Razor的設(shè)計(jì)理念是簡(jiǎn)單直觀的,對(duì)于大多數(shù)應(yīng)用,我們不必關(guān)心語法,只需要在插入代碼時(shí),輸入HTML和@符號(hào)。

        1.3 模型(Models)

        模型是一個(gè)比較抽象的概念,主要是利用模型對(duì)象來構(gòu)建ASP.NET MVC應(yīng)用程序,可以使用C#語言編寫模型定義類,然后根據(jù)指定的模型類型使用基架生成應(yīng)用程序的其他部分。這便是模型最常用也是最基礎(chǔ)的一種存在。

        在MVC中,控制器是C#類,通常派生于System.Web.MVC.Controller,開發(fā)者自己創(chuàng)建的每一個(gè)控制器通常都是從這個(gè)Controller派生而來的,派生而來的類中的每一個(gè)public方法都稱為一個(gè)動(dòng)作方法,它通過ASP.NET 路由系統(tǒng)與一個(gè)可配置的URL相關(guān)聯(lián)。當(dāng)一個(gè)請(qǐng)求被發(fā)送到與一個(gè)動(dòng)作方法相關(guān)聯(lián)的URL時(shí),便執(zhí)行控制器類中的語句,以進(jìn)行域模型上的一些操作,然后選擇一個(gè)視圖來顯示給客戶端。這就是控制器、模型及視圖之間的交互。

        2 路由

        2.1 URL

        URI代表統(tǒng)一資源標(biāo)識(shí)符。URL是標(biāo)識(shí)了一個(gè)資源的字符串。從技術(shù)角度看,所有URL都是URI。W3C認(rèn)為“URL是一個(gè)正式的概念,但它非常有用:URL是URI的一種類型,它通過表示自身的主要訪問機(jī)制來標(biāo)識(shí)資源”。換句話說,URI是某種資源的標(biāo)識(shí)符,而URL則為獲取該資源提供了具體的信息。

        2.2 URL模式

        路由系統(tǒng)用一組路由來實(shí)現(xiàn)它的功能。這些路由共同組成了應(yīng)用程序的URL架構(gòu)(Schema)或方案(Scheme),這種URL架構(gòu)(或方案)是應(yīng)用程序能夠識(shí)別并能對(duì)之作出響應(yīng)的一組URL。不需要手動(dòng)輸入打算支持的各個(gè)URL,而是讓每一條路由都包含一個(gè)URL模式,用它與一個(gè)輸入U(xiǎn)RL進(jìn)行比較。如果該模式與這個(gè)URL匹配,那么它(URL模式)便被路由系統(tǒng)用來對(duì)這個(gè)URL進(jìn)行處理。

        3 三層架構(gòu)的網(wǎng)站設(shè)計(jì)

        所謂的三層指的是,表現(xiàn)層,業(yè)務(wù)層和數(shù)據(jù)層,它的優(yōu)點(diǎn)是每一層僅用少量的代碼實(shí)現(xiàn)各層的功能,非常靈活,如果把數(shù)據(jù)訪問代碼與業(yè)務(wù)邏輯層分離,當(dāng)數(shù)據(jù)庫服務(wù)器更改后,你只需要更改數(shù)據(jù)訪問的代碼,因?yàn)闃I(yè)務(wù)邏輯層是不變的。邏輯層和數(shù)據(jù)層的分離后讓你后期的改動(dòng)變得更加方便,便于開發(fā)和后期調(diào)試。而且這種架構(gòu)使得程序員之間可以出現(xiàn)協(xié)助工作,這種更高效的開發(fā)便是如今的主流,下面具體介紹每層具體的功能。

        3.1 表現(xiàn)層(Presentation Layer)

        表現(xiàn)層用于用戶接口的展示,以及用業(yè)務(wù)層的類和對(duì)象來“驅(qū)動(dòng)”這些接口。在ASP.NET中,該層包括aspx頁面、用戶控制、服務(wù)器控制以及某些與安全相關(guān)的類和對(duì)象。

        3.2 業(yè)務(wù)層(Business Tier)

        業(yè)務(wù)層用于訪問數(shù)據(jù)層,從數(shù)據(jù)層取數(shù)據(jù)、修改數(shù)據(jù)以及刪除數(shù)據(jù),并將結(jié)果返回給表現(xiàn)層。在ASP.NET中,該層包括使用SqlClient或OleDb從SQL Server或Access數(shù)據(jù)庫取數(shù)據(jù)、更新數(shù)據(jù)及刪除數(shù)據(jù),并把取得的數(shù)據(jù)放到DataReader或DataSet中返回給表現(xiàn)層。返回的數(shù)據(jù)也許只有一個(gè)整形數(shù)字,比如一個(gè)表的行記錄數(shù)目,但這也要用數(shù)據(jù)層的數(shù)據(jù)進(jìn)行計(jì)算。

        3.3 數(shù)據(jù)層(Data Tier)

        數(shù)據(jù)層是數(shù)據(jù)庫或者數(shù)據(jù)源。在.NET中,通常它是一個(gè)SQL Server或Access數(shù)據(jù)庫,但不僅限于此兩種形式,它還可能是Oracle,mySQL,但ASP.NET MVC最好就是用SQL Server。

        參考文獻(xiàn):

        [1] Adam Freeman(美).精通ASP.NET MVC4[M].李萍,徐燕萍,林逸,譯.人民郵電出版社,2014.

        [2] Jon Galloway,Brad Wilson,K.Scott Allen,David Matson(美) . ASP.NET MVC 5高級(jí)編程[M].孫元帥,譯.清華大學(xué)出版社,2015.

        作者簡(jiǎn)介:穆海明(1994—),男,天津人,沈陽理工大學(xué)本科在讀。

        劉盼(1994—),男,山西運(yùn)城人,沈陽理工大學(xué)本科在讀。

        齊斌(1994—),男,遼寧盤錦人,沈陽理工大學(xué)本科在讀。

        猜你喜歡
        三層架構(gòu)視圖路由
        探究路由與環(huán)路的問題
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        基于“三層架構(gòu)”理論的教學(xué)設(shè)計(jì)案例分析
        良好的信息系統(tǒng)體系結(jié)構(gòu)模式對(duì)網(wǎng)絡(luò)安全監(jiān)察與維護(hù)技術(shù)的方法的探討
        ASP.NET三層架構(gòu)體系分析與應(yīng)用
        基于SSH 的實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        PRIME和G3-PLC路由機(jī)制對(duì)比
        国产精品入口蜜桃人妻| 色综合久久无码五十路人妻| 99国产精品久久久蜜芽| 亚洲一区二区三区国产精华液| 国产在线精品福利大全| 91久久大香伊蕉在人线国产| 国产精品久久久久久久久久红粉| 波多野42部无码喷潮| 国产三级欧美| 人妻免费黄色片手机版| 97人妻人人揉人人躁九色| 无码人妻精品一区二区三区不卡| 亚洲爆乳大丰满无码专区| 日本av第一区第二区| 无码乱肉视频免费大全合集| 亚洲午夜福利在线观看| 日韩成人精品日本亚洲| 日本一区二区三级免费| 美女露内裤扒开腿让男人桶无遮挡| 一群黑人大战亚裔女在线播放| 欧美精品一本久久男人的天堂| 日韩av在线亚洲女同| 亚洲视频在线观看| 精品久久综合亚洲伊人| 国产麻豆精品久久一二三| 日韩精品在线视频一二三| 亚洲av无码一区二区三区观看| 人妻无码中文专区久久综合| 亚洲中文字幕乱码免费看| 亚洲国产精品无码久久一区二区| 少女高清影视在线观看动漫| 亚洲AⅤ樱花无码| av网站免费在线浏览| 国产精品∧v在线观看| 人妻在线中文字幕| 国产av午夜精品一区二区入口| 日本护士xxxxhd少妇| 欧美粗大无套gay| 亚洲黄片久久| 亚洲av成熟国产一区二区| 伊人久久久精品区aaa片|