<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      應(yīng)用程序框架實(shí)戰(zhàn)三十:表現(xiàn)層及ASP.NET MVC介紹(一)

        本文將介紹表現(xiàn)層及ASP.NET MVC的一些要點(diǎn),特別是ASP.NET MVC的一些抽象和封裝技巧,如果你對(duì)MVC還不了解,可以參考《ASP.NET MVC4 高級(jí)編程》,作者Jon Galloway等,這本書由ASP.NET MVC團(tuán)隊(duì)成員編寫,相當(dāng)不錯(cuò)。

      表現(xiàn)層的職責(zé)

        表現(xiàn)層的職責(zé)是展示和收集數(shù)據(jù),將領(lǐng)域?qū)拥臄?shù)據(jù)和邏輯展示出來(lái),并收集用戶輸入的相關(guān)信息。

        搞清楚表現(xiàn)層的職責(zé)以后,你就應(yīng)該清楚,表現(xiàn)層不是你應(yīng)該編寫業(yè)務(wù)邏輯的地方,這也是分層架構(gòu)的核心。

        如果要展示一個(gè)計(jì)算值,不應(yīng)該在表現(xiàn)層直接完成計(jì)算,相反,由領(lǐng)域?qū)舆M(jìn)行計(jì)算,表現(xiàn)層直接拿到結(jié)果并展示,這樣可以讓表現(xiàn)層代碼非常簡(jiǎn)潔,同時(shí)業(yè)務(wù)邏輯被高度內(nèi)聚到領(lǐng)域?qū)印?/span>

        很多時(shí)候,為了提升用戶體驗(yàn),我們會(huì)在頁(yè)面上使用Js進(jìn)行客戶端計(jì)算,從而獲得快速響應(yīng),但也導(dǎo)致業(yè)務(wù)邏輯泄露到Js中。在大多情況下,這是可以接受的,不過(guò)在你準(zhǔn)備用Js編寫這些重復(fù)邏輯時(shí),可以先考慮是否可以使用Ajax請(qǐng)求服務(wù)端完成。每當(dāng)你需要進(jìn)行客戶端實(shí)時(shí)計(jì)算時(shí),就發(fā)送請(qǐng)求給服務(wù)端,領(lǐng)域?qū)油瓿捎?jì)算,返回結(jié)果。

        盡量減少業(yè)務(wù)邏輯副本,當(dāng)需求變化或發(fā)現(xiàn)BUG時(shí),代碼同步更輕松。

        對(duì)于管理系統(tǒng)來(lái)說(shuō),盡量讓程序員少寫Js,盡量封裝和抽象,因?yàn)镴s是弱類型,沒(méi)有編譯時(shí)檢查,代碼提示很弱,哪怕使用了Resharper,代碼提示功能依然不佳,細(xì)長(zhǎng)的提示滾動(dòng)條,看得你兩眼直冒金星。另外Js很多技巧看上去很怪異,初學(xué)者使用這些技巧,Bug率將大幅上升。當(dāng)項(xiàng)目交給新人維護(hù),長(zhǎng)篇的Js更使其痛苦不堪。當(dāng)然這是給普通團(tuán)隊(duì)的建議,少寫Js可以讓你的項(xiàng)目容易維護(hù),高水平團(tuán)隊(duì)請(qǐng)忽視。

      Mvc介紹

        MVC是一個(gè)表現(xiàn)層架構(gòu)模式,將表現(xiàn)層分成三個(gè)部分,模型、視圖和控制器。

        當(dāng)Http請(qǐng)求發(fā)送到ASP.NET MVC引擎時(shí),MVC引擎查找路由表以決定由哪個(gè)控制器操作來(lái)處理這個(gè)請(qǐng)求。

        控制器是一個(gè)指揮中心,它調(diào)用后端的服務(wù),并將得到的模型交給視圖顯示。

        你可以直接在控制器方法中操作DbContext或倉(cāng)儲(chǔ),并使用Linq語(yǔ)句進(jìn)行查詢。當(dāng)你逐步意識(shí)到控制器代碼變得復(fù)雜時(shí),可以創(chuàng)建應(yīng)用層服務(wù)來(lái)簡(jiǎn)化表現(xiàn)層。

        應(yīng)用服務(wù)為表現(xiàn)層提供唯一的API訪問(wèn)點(diǎn),大幅降低控制器復(fù)雜度,控制器的所有操作,都通過(guò)應(yīng)用服務(wù)一個(gè)明確的API完成,不僅操作更規(guī)范,而且控制器將變成很薄的一層。

        控制器的開(kāi)發(fā)要點(diǎn)是,保持盡量簡(jiǎn)單,沒(méi)事少寫代碼。把你的需求交給應(yīng)用層服務(wù)去實(shí)現(xiàn),你只需要簡(jiǎn)單調(diào)用其接口就行了。

        模型是指數(shù)據(jù)與業(yè)務(wù)邏輯,即領(lǐng)域模型,大部分時(shí)候,你可以在MVC視圖中直接操作領(lǐng)域?qū)嶓w,視圖模型ViewModel不是必須的。不過(guò)出于某些原因考慮,視圖中操作的也可能是DTO或ViewModel,當(dāng)界面變得復(fù)雜時(shí),通過(guò)為特定視圖引入專門的ViewModel 可以簡(jiǎn)化界面開(kāi)發(fā)。

        你可能已經(jīng)發(fā)現(xiàn)了名目繁多的實(shí)體類型:領(lǐng)域?qū)嶓w、DTO、ViewModel、查詢實(shí)體等,確實(shí)讓人眼花繚亂,我將在后續(xù)用專文討論,以方便你根據(jù)需要取舍。

      約定優(yōu)于配置

        “約定優(yōu)于配置”原則,建議你盡量遵循默認(rèn)約定,并形成習(xí)慣,這樣可以大幅降低學(xué)習(xí)成本和工作量,同時(shí)獲得更一致的目錄結(jié)構(gòu)和代碼風(fēng)格,查找特定類型的文件變得非常容易,可維護(hù)性大大提高了,你僅在必要時(shí)才需要通過(guò)配置來(lái)覆蓋默認(rèn)值。

        “約定優(yōu)于配置”原則對(duì)目錄結(jié)構(gòu)和命名產(chǎn)生了深遠(yuǎn)影響。

        項(xiàng)目的目錄結(jié)構(gòu)至關(guān)重要,但大部分程序員對(duì)目錄結(jié)構(gòu)不太關(guān)心,因?yàn)閯?chuàng)建文件夾沒(méi)有技術(shù)含量,簡(jiǎn)單的容易被忽視。

        當(dāng)你準(zhǔn)備修改某個(gè)功能時(shí),第一步起碼先得找到相關(guān)的文件。

        如果你平時(shí)不太注意目錄結(jié)構(gòu)的管理,創(chuàng)建文件很隨意,隨便找個(gè)地方就扔進(jìn)去了,隨著項(xiàng)目文件的增多,你的開(kāi)發(fā)工作將會(huì)越來(lái)越亂,當(dāng)你要找某個(gè)文件時(shí),你會(huì)在目錄樹中四處亂點(diǎn),“哦,不在這,哦,也不在那,哦耶,終于找到了”。

        當(dāng)你要找一個(gè)控制器時(shí),你會(huì)去查找Controllers目錄,而不是一個(gè)叫ABCD的目錄,這就是命名約定。如果存在一個(gè)名為TestController的控制器,默認(rèn)在Views目錄中就會(huì)有一個(gè)Test的目錄與之對(duì)應(yīng),這樣在查找控制器對(duì)應(yīng)的視圖時(shí)就能非常輕松。

        當(dāng)你的所有文件都能夠根據(jù)約定,分門別類的放到清晰命名的目錄中時(shí),整個(gè)項(xiàng)目的質(zhì)量將大幅提升。

        我在封裝EasyUi時(shí),把控件Id的命名作了一些約定,比如表格叫g(shù)rid。這樣很多Js回調(diào)函數(shù),就可以在內(nèi)部完成,不需要你手工處理了,如果你遵循這些約定,開(kāi)發(fā)一個(gè)簡(jiǎn)單的EasyUi CRUD操作,基本不需要寫Js。

       

        .Net應(yīng)用程序框架交流QQ群: 386092459,歡迎有興趣的朋友加入討論。

        謝謝大家的持續(xù)關(guān)注,我的博客地址:http://www.rzrgm.cn/xiadao521/

      posted @ 2015-02-02 19:56  何鎮(zhèn)汐  閱讀(4232)  評(píng)論(23)    收藏  舉報(bào)
      主站蜘蛛池模板: 华人在线亚洲欧美精品| 国产激情艳情在线看视频| 日本老熟女一二三区视频| 午夜在线不卡| 亚洲男人第一无码av网站| 秋霞电影网| 亚洲高清乱码午夜电影网| 塘沽区| 激情国产一区二区三区四区| 99久久精品国产一区二区蜜芽| 亚洲色大成网站www永久一区| 久久综合婷婷成人网站| 国产午夜福利大片免费看| 亚洲精品国产美女久久久| 亚洲国产精品午夜福利| 91精品午夜福利在线观看| 欧美乱强伦xxxx孕妇| 亚洲av成人无码精品电影在线| 国产av仑乱内谢| 日本在线视频网站www色下载| 资兴市| 国产极品粉嫩学生一线天| 亚洲AV无码专区亚洲AV桃| 国产伦码精品一区二区| 亚洲精品tv久久久久久久久久| 久久影院午夜伦手机不四虎卡 | 无码日韩av一区二区三区| 欧美成人精品高清在线播放| 亚洲高潮喷水无码AV电影| 湾仔区| 亚洲综合一区国产精品| 国产美女MM131爽爽爽| 日日碰狠狠添天天爽五月婷| 国产办公室秘书无码精品99| 国产亚洲欧美另类一区二区| 精品一区二区中文字幕| 亚洲欧美人成人综合在线播放| 亚洲欧美日韩精品久久| 人成午夜免费大片| 国产香蕉久久精品综合网| 亚洲AV日韩精品久久久久|