就個(gè)人感覺而言。ASP.NET MVC是一種非常反人類的設(shè)計(jì)。(我沒有接觸過(guò)Java的MVC,不知道兩者是否一樣。如果一樣,那么搞Java的同學(xué)也挺可憐。)尤其是MVC的路由機(jī)制,灰?;页7磩?dòng)。路由所帶來(lái)的“美觀的”URL,通過(guò)合理的文件層次布局+URL重寫機(jī)制同樣可以解決。但顯然文件目錄結(jié)構(gòu)的方式,更直觀明了,貼近人們的自然思路??上Р还芪覀?nèi)绾瓮虏?,薩蒂亞?納德拉估計(jì)是不會(huì)聽的。

  MVC的默認(rèn)組織機(jī)構(gòu)是扁平的。所有的Controller都是平級(jí)的。在大型項(xiàng)目中,這完全是一個(gè)災(zāi)難。當(dāng)需要上百個(gè)甚至數(shù)百個(gè)Controller,或是為了讓代碼“自說(shuō)明”時(shí)(指合理的給方法、文件命名,使閱讀者在沒有注釋的時(shí)候也能直接讀懂開發(fā)者的意圖),很多Controller需要同名時(shí),尤其讓人崩潰。路是死的,人是活的。為了解決這一問(wèn)題,聰明的程序猿想出了很多辦法。比如利用Area機(jī)制、重寫視圖匹配機(jī)制、重寫MVC框架等等。我們的OA系統(tǒng)中也有近百個(gè)Controller,不提前規(guī)劃好路由,后續(xù)的工作我們就無(wú)法展開。所以,在這一節(jié),我們就來(lái)聊聊其中兩種不對(duì)MVC做大手術(shù)的方式。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)
(僅僅一個(gè)小功能模塊就需要10多個(gè)Controller,在大型項(xiàng)目中,甚至需要數(shù)百個(gè)Controller,對(duì)項(xiàng)目管理而言,如不進(jìn)行合理劃分、管理,而按照mvc默認(rèn)的平級(jí)存放,無(wú)疑會(huì)帶來(lái)災(zāi)難性的后果。注:本圖已對(duì)功能模塊進(jìn)行按目錄劃分)

 

MVC大型項(xiàng)目常見組織方式1——重寫視圖匹配機(jī)制,實(shí)現(xiàn)MVC多級(jí)目錄

   該方式的核心要點(diǎn)是:根據(jù)功能劃分,對(duì)Controller和View進(jìn)行多級(jí)目錄處理(如上圖)。然后通過(guò)路由優(yōu)先級(jí)和重載MVC自帶的視圖匹配邏輯的方式,達(dá)到精確控制URL與Controller、Views進(jìn)行匹配。進(jìn)行這是最接近自然思維的處理方式,合理而精細(xì)的安排路由優(yōu)先級(jí)的情況下,可以做到非常深的目錄層次。在我們的示例項(xiàng)目中,也將采用這種辦法。

    延伸閱讀

    學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式