淺談三層架構與MVC的區別



 

    三層架構與MVC的區別  MVC(模型Model-視圖View-控制器Controller)是一種設計模式,我們可以用它來創建在域對象和UI表示層對象之間的區分。

    同樣是架構級別的,相同的地方在於他們都有一個表現層,但是他們不同的地方在於其他的兩個層。

    在三層架構中沒有定義Controller的概念。這是我認爲最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建 程序最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVCModel的概念是不一樣的,三層中典型的 Model層是以實體類構成的,而MVC裏,則是由業務邏輯與訪問數據組成的。

 

------------------------------------------------------------

 

  三層架構是最基本的項目分層結果,而MVC則是三層架構的一個變體,MVC是一種好的開發模式。首先你要明白MVC分別代表的是什麼意思.
M
Model(模型層),主要負責處理業務邏輯以及數據庫的交互
V View(視圖層),主要用於顯示數據和提交數據
C Controller(控制器),主要是用作捕獲請求並控制請求轉發

      三層:UI 界面層 BLL 業務邏輯層,DAL數據訪問層,Model 實體層
MVC中的的M 不是三層中的Model(實體層),他其實包括三層中的 BLLDAL,Model,這是非常要注意的,這也是他們之間的區別的關鍵所在

其優點有如下:
低耦合性
高重用性和可適用性
較低的生命週期成本
快速的部署
可維護性
有利於軟件工程化管理

當然優點也有缺點,那就是內部結構複雜,不容易理解,文件數量大,管理難度自然也就大

 

 

  MVC設計模式
三層架構
他們細分之後得到的是:View(UI)BIZBLL)、DAODAL)、EntityModel)、Controller
MVC
BIZBLL)、DAODAL)、ModelEntity 統一稱之爲 模型(MODEL),得到:ViewController、模型(MODEL)
三層 在我使用中 暫未體會到控制器的存在,完全是:UIDAOBLL

他們相同的設計理念就是:把視圖設計與數據持久化進行分離,從而降低耦合性,易於擴展,提高團隊開發效率。

 

  三層是基於業務邏輯來分的,而mvc是基於頁面來分的
根本就沒有什麼可比性。
其實兩個一起用我感覺很好

 

 

MVC模式是一種複合設計模式,一種解決方案
三層是種軟件架構,通過接口實現編程
三層模式是體系結構模式,MVC是設計模式
三層模式又可歸於部署模式,MVC可歸於表示模式

------------------------------------------------------------

 

 

ASP.NET MVC WebForm 三層架構 區別

1.傳統WebForm開發中存在的一些問題

傳統的ASP.NET開發中,微軟的開發團隊爲開發者設計了一個在可視化設計器中拖放控件,編寫代碼響應事件的快速開發環境。然而,它所帶來的負面效應是:

由於控件封裝了很多東西,開發者很難了解這背後的HTML是如何運作的

容易得到一個包含大量ViewState的頁面,使得頁面尺寸遠遠超過所需的內容,使得頁面的打開速度較慢

不容易被測試

2.什麼是MVC?

MVCModel-View-Controller,模型-視圖-控制器模式)是軟件工程中的一種軟件架構模式。它把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

3.什麼是ASP.NET MVC?

ASP.NET MVC是微軟的開發團隊基於MVC開發的一個易於被測試的框架。它具有以下特性:

沒有數據回傳

沒有在頁面中保存視圖狀態

開發者可以完全掌控頁面的呈現過程

易於單元測試

易於測試驅動開發

可擴展、可替換

支持WebForm中的有關特性,如:用戶控件、母版頁、數據綁定、本地化等

不在基於文件目錄結構,而是將URL映射到控制器中

4. 爲什麼使用ASP.NET MVC?

易於進行單元測試

易於進行測試驅動開發

避免了WebForm中大量的ViewState導致頁面文件變得臃腫

5. MVC與三層架構?  

MVC是一種模式
ASP.NET MVC是一個基於MVC模式的開發框架
三層架構是一種架構

至於區別,可以嚴格的從概念上區分開來

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章