.NET MVC與三層架構

來源:互聯網
上載者:User

標籤:span   使用   http   實體   擴充   處理   驗證   中間   商業   

雖然接觸了兩者有一段時間了,但是有時還是會混淆概念,在此處不打算說明二者的區別,因為二者都是架構模式,並且也有一定的共存度,在實際開發中,嚴格區分意義不大。基於最近涉及到這部分知識就在複習下,編程過程中,基礎概念更重要,而不是技術。

  先看看,三層架構吧,即UI(展示層),BLL(商務邏輯層),DAL(資料訪問層):

    UI(表現層):主要是指使用者互動的介面。用於接收使用者輸入的資料和顯示處理後使用者需要的資料。

    BLL:(商務邏輯層):UI層和DAL層之間的橋樑。實現商務邏輯。商務邏輯具體包含:驗證、計算、商務規則等等。

    DAL:(資料訪問層):與資料庫打交道。主要實現對資料的增、刪、改、查。將儲存在資料庫中的資料提交給業務層,同時將業務層處理的資料儲存到資料庫。(當然這些操作都是基於UI層的。使用者的需求反映給介面(UI),UI反映給BLL,BLL反映給DAL,DAL進行資料的操作,操作後再一一返回,直到將使用者所需資料反饋給使用者)

                                        

  其實,真正使用過三層架構的都知道,三者之間是通過Entity傳遞資料的,Entity貫穿三層,將三者串連起來,同時也實現了對資料實體的封裝,取代了個層之間多變數的資料傳遞(資料交流),大大的簡化了資料交流,也降低了資料發生錯誤的機率。(Entity其實就是對資料庫表實體的封裝),Entity與三層之間的依賴關係:

    

 

  再看MVC架構,即M(model 模型·),V(view 視圖),C(controller 控制器)三個部分。在MVC架構中這三部分是必須的,但我們也可以根據項目的實際需求與實際情況還能再增加,比如實現Service層或Repository層等,我們可以自行擴充,大幅提高了開發時的靈活性。

    Model(資料模型):用於封裝與應用程式在商業邏輯上相關的資料,以及對其資料操作的處理方法(資料庫的訪問操作,即增刪改查;資料結構的定義;資料格式的驗證)。Model並不依賴於View和Controller,也就是說Model並不需要知道它會如何被顯示出來或如何被應用,只需要專註於自己該有的責任即可。Model中常見的技術有Entity Framework(即EF)、NHibernate、LINQ to SQL、Typed DataSet和ADO.NET等。

    View(視圖): 頁面顯示或擷取使用者輸入,View需要負責將Controller傳過來的資料配合“顯示邏輯”呈現給使用者,此處雖然View需要Contorller傳遞資料,但是View並沒有依賴某個Controller,任何Controller只要能提供View所需要的資料,View就可以根據顯示邏輯將其顯示出來,是一種鬆散的關聯關係。

    Controller(控制器):屬於一種結果協調者的角色,因為M-V-C三個部分沒有直接的聯絡,View無法直接與Model溝通,即Model可以操作資料,View可以顯示資料,因此,VIew顯示的資料需由Controller從Model擷取後提供給View。即Controller的角色位於使用者介面層和商業邏輯層中間。

 

  其中,MVC中最重要的特性是關注點分離和約定優於配置。關注點分離,簡單地說就是“只注意需要注意的”,這樣可以很好的解耦模組,各個單元的複雜度就相對降低,更容易開發,同時,也增強了程式的可維護性。約定優於配置,簡單地說,就是開發過程中應該遵守的約定,如:Controller的檔案名稱後面一定要以Controller結尾;View檔案一定要放在VIews檔案夾下;View的名稱就是對應的Controller的Action名稱;Web API的Action名稱前面應該加上HTTP動詞等等,這樣有利於項目的後期開發與維護,以防止因人員流動而使項目無其他人願意接手。

.NET MVC與三層架構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.