1. 程式人生 > >【Asp.Net MVC+EF+三層架構】詳解(三)MVC VS 三層架構

【Asp.Net MVC+EF+三層架構】詳解(三)MVC VS 三層架構

前言:

       接著上篇部落格說:MVC和三層架構到底是怎麼樣的一個關係?相同?或是迥異?或是部分相同,部分不同?或是思想同,邏輯不同?這是個值得思考的問題。關於三層架構大家應該差不多都有些瞭解,那麼在本文中將側重於MVC的學習。

正文:

      關於MVC與三層架構的關係,這兩個的關係還真不好說,因為它們的關係是動態的,相對的,取決於整個專案的框架。那麼本文論述兩種情況下的MVC與三層架構的關係

情況一、只有MVC框架的專案和不含有MVC框架的三層架構專案

            那麼這個時候他們之間的關係就有異同點了:

            相同:的是都分為三層,都能形成從使用者到資料庫的閉合迴路。

            不同點:

        1、劃分層次不同

                        三層:分為表現層(UI)、業務邏輯層(BLL)、資料訪問層(DAL)
                        MVC:即模型(Model)、檢視(View)、控制(Controller)

                        它們之間並沒有什麼對應關係,但如果非要對應的話,可以看下下圖中的關係

                       

         2、三層中的Model與MVC中的Model

                    首先解釋下MVC,關於V和C分別代表什麼,作用是什麼,之前的部落格都詳細描述過,那在這裡就不作解釋了,在這三個裡,最不容易理解的是Model,就什麼是Model?跟三層架構中的實體層是同樣的功能嗎?很多人可能會把MVC中的Model層誤認為三層架構中的實體類。其實在MVC架構中Model層有比實體類更豐富的定義和作用,在MVC框架中Model層的作用既有真正的邏輯事物,資料訪問,甚至演算法都放在Model去,這和實體類完全是兩回事。“三層”中典型的Model層是已實體類構成的,而MVC中的model,則是由業務邏輯與訪問資料組成的。不一樣的概念。雖然名字一樣。

                       再說三層架構,三層其實很好理解,介面,業務,資料訪問,就這三個,從字面都可以理解出它們的意思。我要說的是它和MVC的區別。在三層架構中沒有定義Controler的概念。這是我認為最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建程式最主要的區別。

 情況二、既含有MVC框架也含有三層架構的專案

             在這種框架下,MVC和三層架構的關係就變得非常顯而易見了。

          三層架構中,DAL(資料訪問層)、BLL(業務邏輯層)、WEB層各司其職,意在職責分離。MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的WEB層,也就是說,MVC把三層架構中的WEB層再度進行了分化,分成了控制器、檢視、實體三個部分,控制器完成頁面邏輯,通過實體來與介面層完成通話;而C層直接與三層中的BLL進行對話。三層和MVC的組合解決了Model與資料庫耦合性太強的問題。

小結:

         由於學習是一個逐步深入的過程,現在還未到深刻理解的程度,本文僅是記錄這個學習認知的過程,這些也都是小編在不斷學習和思考中得到的暫時的結論。希望和大家一同交流,隨著時間的推移,自己的認識也在不斷的重新整理,期待各位大神斧正!學到這裡關於【Asp.Net MVC+EF+三層架構】中MVC部分的理論學習就已經完成了,接下來就是MVC的實際操練的環節,小編將會在下篇部落格中講述,敬請關注

相關推薦

Asp.Net MVC+EF+架構初見

前言: 這個專案是小編我進入公司開始全面重頭開始著手的第一個專案,在寶寶的IT生涯裡這是一個里程碑,有著與眾不同的意義。那麼在之後小編會從頭至尾的寫一組關於Asp.Net MVC+EF+三層架構框架

DevExpress ASP.NET Bootstrap Controls v18.2新功能

訪問 文件管理 dropbox .net ots 二次 pen 工具 web 行業領先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式發布,本站將以連載的形式為大家介紹新版本新功能。本文將介紹了DevExpres

Asp.Net MVC+EF+架構MVC VS 架構

前言:        接著上篇部落格說:MVC和三層架構到底是怎麼樣的一個關係?相同?或是迥異?或是部分相同,部分不同?或是思想同,邏輯不同?這是個值得思考的問題。關於三層架構大家應該差不多都有些瞭解

資料分析的資料架構知識

我們在前面的文章中提到了BI系統,從文章中我們不難發現BI系統處理資料的時候都是很有效的,但是當資料量過大的時候,我們系統的效能就會弱了很多。當然了,如果我們處理的資料在TB或者TB以上的資料量的時候,這個系統根本就不能夠正常執行,所以,我們就需要解決這個問題。 大家都知道資料庫的規則是有很多的,資料庫

資料分析的資料架構知識

在前面的文章中我們給大家介紹到了傳統大資料架構、流式架構、lambda架構,同時我們也給大家講了講這些結構的優缺點以及適用場景。除了這些架構,其實還有Kappa架構、Unifield架構。下面我們就給大家介紹一下這兩個架構,希望這篇文章能夠給大家帶來幫助。 首先給大家說一說Kapp

資料分析的資料架構知識

大家都知道,資料分析師一門比較高深的學問,並且對於各行各業都有一個很大的幫助。但是大家知道不知道資料分析的資料架構知識呢?資料架構的知識有很多,下面就由小編為大家解答一下這個問題,希望這篇文章能夠給大家帶來幫助。 就目前而言,很多的資料分析工作都是做的是隱藏工作,說白了就是隱藏在業

SignalR新手系列教程- ASP.NET 應用整合 SignalR 瀏覽器聊天室示例

在上一篇教程我們講解了SignalR 平臺配置要求,下面根據一步步詳細示例搭建一個 SignalR 的示例專案,以此瞭解 SignalR 到底是一個什麼樣的效果。 SignalR 示例所使用的軟體版本 Visual Studio 2013,當然更高的版本也是支援的。

asp.net性能優化之使用Redis緩存入門

1-43 date 連接 setting 3.4 lose pre 數據庫數據 apps 1:使用Redis緩存的優化思路 redis的使用場景很多,僅說下本人所用的一個場景: 1.1對於大量的數據讀取,為了緩解數據庫的壓力將一些不經常變化的而又讀取頻繁的數據存入redis

ASP.NET Core應用程序部署至生產環境中CentOS7

for linux home web 虛擬 direct director block bic 閱讀目錄 環境說明 準備你的ASP.NET Core應用程序 安裝CentOS7 安裝.NET Core SDK for CentOS7。 部署ASP.NET

Spring Cloud Spring Boot mybatis分布式微服務雲架構屬性配置文件1

定義 public 配置數據庫連接 clas cep and xml配置 其他 PE 相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spri

Docker打包 Asp.Net Core應用,在CentOS上運行

ner 表示 exec 但是 服務端 名稱 pro 目前 app 轉載連接:https://www.cnblogs.com/ibeisha/archive/2017/09/09/netcoreondocker.html 本文主要介紹下運用docker虛擬技術打包Asp.n

讓Windows Server 2008 + IIS 7+ ASP.NET 支援10萬併發請求--手動解決方案轉載

今天下午17點左右,部落格園部落格站點出現這樣的錯誤資訊: Error Summary: HTTP Error 503.2 - Service Unavailable The [email protected] setting is being exceeded. 

ASP.NET Core 打造一個簡單的圖書館管理系統 基本模型以及數據庫的建立

allow shel 系列 sqlserver rar 刪除數據庫 mvc 5 字段 約定 前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文檔:https://docs.microsoft.c

ASP.NET Core 打造一個簡單的圖書館管理系統 基本模型以及資料庫的建立

前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文件:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-2.1&ta

ASP.NET Core 打造一個簡單的圖書館管理系統Code First 多對多關係的建立

前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文件:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-2.1&ta

ASP.NET Core 打造一個簡單的圖書館管理系統Code First 多對多關系的建立

兩個 microsoft 創建 int lan rar -c bsp dem 前言: 本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。 本系列文章主要參考資料: 微軟文檔:https://docs.microsoft.com/zh-c

ASP.NET Core 打造一個簡單的圖書館管理系統密碼修改以及密碼重置

 前言:   本系列文章主要為我之前所學知識的一次微小的實踐,以我學校圖書館管理系統為雛形所作。   本系列文章主要參考資料:   微軟文件:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcor

資料分析的資料架構知識

資料分析的架構是有很多的,比如傳統的大資料架構、流式架構、lambda架構、Kappa架構、Unifield架構。但是大家對於這些架構都不是很熟悉的,並且各個資料分析的架構都是有很多優點和缺點的,下面就由小編為大家解答一下這個問題。 首先說說傳統大資料架構。我們叫傳統大資料架構,是因為其定位是為了解決傳

asp.net core2.1 部署centos7/linux系統 -- 安裝部署

img eight width .dll ng2 eas tro phoenix package 原文:asp.net core2.1 部署centos7/linux系統 -- 安裝部署(一)

Asp.net生成htm靜態檔案的兩種途徑

{ 12//原始碼是替換掉模板中的特徵字元13 14string mbPath =Server.MapPath("template.htm"); 15            Encoding code = Encoding.GetEncoding("gb2312"); 16            Stream