新聞中心
最近正在考慮是否在我們的企業(yè)級(jí)應(yīng)用中使用ASP.NET MVC 1.0框架,因此會(huì)一直找使用它的理由,希望大家在關(guān)注技術(shù)的同時(shí),結(jié)合企業(yè)應(yīng)用談?wù)勛约旱目捶ā?/p>

成都創(chuàng)新互聯(lián)基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)綿陽(yáng)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
1、MVC的組成
Models:訪問(wèn)數(shù)據(jù)庫(kù),裝載數(shù)據(jù)、處理業(yè)務(wù)邏輯。在項(xiàng)目中體現(xiàn)為數(shù)據(jù)實(shí)體類加業(yè)務(wù)代理類。
Views:顯示數(shù)據(jù),用戶界面。在項(xiàng)目中體現(xiàn)為aspx頁(yè)面,偶爾可以加上code-behind。
Controller:按路由規(guī)則將請(qǐng)求的數(shù)據(jù)傳送給指定頁(yè)面,用于顯示;也可以把用戶輸入的數(shù)據(jù)傳遞給邏輯處理類。它可以包含簡(jiǎn)單的驗(yàn)證邏輯。不應(yīng)包含數(shù)據(jù)訪問(wèn)邏輯。
2、為何使用MVC
提出MVC的目的無(wú)非是提高開(kāi)發(fā)效率、提高可測(cè)試性。官方的ASP.NET MVC 1.0指南中指出(以下簡(jiǎn)稱指南),基于MVC的Web應(yīng)用程序有如下優(yōu)點(diǎn):
[1]對(duì)復(fù)雜的程序管理更方便
It makes it easier to manage complexity by dividing an application into the model, the view, and the ontroller.
[2]在開(kāi)發(fā)上有更高的可控性
It does not use view state or server-based forms. This makes the MVC framework ideal for developers who want full control over the behavior of an application.
[3]Routing使軟件設(shè)計(jì)有更多靈活性
It uses a Front Controller pattern that processes Web application requests through a single controller. This enables you to design an application that supports a rich routing infrastructure.
[4]更加適合測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
It provides better support for test-driven development (TDD).
[5]團(tuán)隊(duì)開(kāi)發(fā)項(xiàng)目中有更高的可控性
It works well for Web applications that are supported by large teams of developers and Web designers who need a high degree of control over the application behavior.
同時(shí)MVC框架還有以下特點(diǎn):
[1]將應(yīng)用程序分成各個(gè)組成部份,更有利于測(cè)試。MVC框架是基于接口的,這樣可以利用MOCK方式來(lái)替換你的實(shí)際類;做單元測(cè)試的時(shí)候,也可以不運(yùn)行Contrllers,這樣的測(cè)試就更快更靈活。
[2]MVC框架是可擴(kuò)展的,你可以自己設(shè)計(jì)并替換視頻引擎、URL導(dǎo)向規(guī)則、Action的參數(shù)序列等等。同時(shí)MVC框架也支持依賴注入和控制反轉(zhuǎn),你可以從外部注入實(shí)例,而不用讓類自己創(chuàng)建實(shí)例,你還可以通過(guò)配置文件的方式創(chuàng)建實(shí)例,這樣使得測(cè)試更方便。
[3]強(qiáng)大的URL映射組件使得你的應(yīng)用程序的URL更易理解,同時(shí)具備搜索能力。你的URL不必包括文件路徑,這樣的設(shè)計(jì)很適合自定義查詢引擎和REST架構(gòu)。
[4]MVC框架仍然支持ASP.NET中的頁(yè)面、用戶控件、母版頁(yè)作為視圖的模板;同時(shí)你也還可以使用嵌套母版頁(yè)、行內(nèi)表達(dá)式(in-line expressions<%= %>)、服務(wù)器端控件、模板、數(shù)據(jù)綁定、本地化等等屬于ASP.NET已有的東西。
[5]同時(shí)ASP.NET中的FORM驗(yàn)證、Windows驗(yàn)證、URL授權(quán)、Membership、角色、輸出、數(shù)據(jù)緩存、Session、Profile 狀態(tài)管理、配置、Provider框架等特性在MVC框架中仍然是可用的。
小結(jié):ASP.NET MVC 1.0框架是基于ASP.NET的,所以他包括了ASP.NET中的幾乎所有特性。同時(shí)他為設(shè)計(jì)人員提供了一套測(cè)試的方案(當(dāng)然這是所有語(yǔ)言平臺(tái)MVC模式的共性)。在安裝了框架的VS2008中還增加了不少功能,可以方便地添加Views、Models、Controllers。
3、與三層結(jié)構(gòu)的ASP.NET應(yīng)用程序比較
與普通ASP.NET比較而言,***的區(qū)別還是在于前臺(tái)開(kāi)發(fā),后臺(tái)包括的數(shù)據(jù)庫(kù)訪問(wèn)、邏輯處理與以往的方式?jīng)]有明顯區(qū)別,在MVC框架中,這些統(tǒng)稱為Model。而三層結(jié)構(gòu)中,這些可以稱為數(shù)據(jù)訪問(wèn)層與邏輯處理層。
[1]頁(yè)面開(kāi)發(fā)
用這種模式開(kāi)發(fā)的站點(diǎn),光看頁(yè)面的代碼的確比以往少一些,但它更多地使用了頁(yè)面腳本(<% ... %>)用于顯示數(shù)據(jù)。在指南中并未提到不推薦使用服務(wù)器端控件,但是它提供了大量的HTML HELPER,而且還允許你自己添加Helper,比如DataGridHelper,所以在MVC框架中使用這些Helper會(huì)更方便些,不過(guò)這對(duì)于熟練工來(lái)說(shuō)應(yīng)該影響不大,因?yàn)閷?shí)際開(kāi)發(fā)中我們更多使用的是Ctrl+C/Ctrl+V,復(fù)制幾個(gè)標(biāo)簽和復(fù)制幾個(gè)Helper方法所花的時(shí)間差不多??赡軐?duì)于新手來(lái)說(shuō),如果對(duì)標(biāo)簽不熟悉的話,用這些Helper的速度會(huì)快些,但是這樣會(huì)影響新手掌握標(biāo)簽,真是矛盾吶。
[2]數(shù)據(jù)提交
普通的ASP.Net開(kāi)發(fā),在提交數(shù)據(jù)的時(shí)候可能還需要通過(guò)設(shè)置數(shù)據(jù)綁定,或者在code-behind里寫封裝代碼;而在MVC中,框架自動(dòng)幫助你將頁(yè)面上填寫的數(shù)據(jù)封裝到事先指定的Model中,數(shù)據(jù)提交操作在MVC框架挺方便。而且在普通ASP.NET頁(yè)面中,經(jīng)常會(huì)出現(xiàn)某個(gè)屬性無(wú)法綁回去的情況,這點(diǎn)在MVC中應(yīng)該可以得到解決。指南中提到了Routing的使用使得MVC框架下的應(yīng)用程序在操作自定義查詢時(shí)變得更方便,實(shí)際上在查詢方面跟普通方式并沒(méi)有多大區(qū)別,都是對(duì)封裝好的類進(jìn)行解析。至于“URL更容易理解”,現(xiàn)在應(yīng)用程序都是從界面上點(diǎn)擊來(lái)實(shí)現(xiàn)操作,很少有人會(huì)關(guān)注URL本身吧,所以這個(gè)優(yōu)點(diǎn)不算優(yōu)點(diǎn)。
[3]單元測(cè)試
從測(cè)試上講,MVC框架確實(shí)做得不錯(cuò),若用MOCK方式測(cè)試可以更方便,一個(gè)好的WEB應(yīng)用程序設(shè)計(jì)就應(yīng)該將頁(yè)面呈現(xiàn)與邏輯分開(kāi),這點(diǎn)普通ASP.NET應(yīng)用程序也是可以做到的,關(guān)鍵在于設(shè)計(jì)。
[4]其它
MVC框架在驗(yàn)證、母版頁(yè)這些地方有幾個(gè)新特性,但與普通ASP.NET的方式大同小異,因此不仔細(xì)說(shuō)了。
文章題目:技術(shù)高手講評(píng)ASP.NETMVC1.0
轉(zhuǎn)載來(lái)于:http://m.fisionsoft.com.cn/article/dpgoppg.html


咨詢
建站咨詢
