六、ASP.NET MVC入門到精通——ASP.Net的兩種開發方式

本系列目錄:ASP.NET MVC4入門到精通系列目錄彙總

目前,ASP.NET中兩種主流的開發方式是:ASP.NET Webform和ASP.NET MVC。從下圖能夠看到ASP.NET WebForms和ASP.NET MVC是並行的,也就是說MVC不會取代WebForms(至少目前是這樣)而是多了一個選擇,Webform在短時間以內不會消亡,儘管存在許多缺點,但過去許多老項目依舊是使用的WebForms進行開發的,雖然許多公司已經在積極的將WebForms項目遷移或升級到MVC項目,但WebFoms項目依然會存在很長一段時間。javascript

 

WebForm的開發方式

• 服務器端控件html

• 通常處理程序+Html靜態頁+Ajaxjava

• 通常處理程序+Html模板程序員

WebForm模型

 

MVC請求模型

DomainModel – 領域模型: 不只僅是一個實體類,而是整個業務才處理流程的一個規則.web

WebForm 優勢數據庫

   一、支持事件模型開發。得益於豐富的服務器端組件,webfrom開發能夠迅速的搭建web應用安全

   二、使用方便,入門容易服務器

   三、控件豐富架構

WebFrom 缺點mvc

   一、封裝太強,不少底層東西讓咱們初學者不是很明白

   二、入門容易,提高很難

   三、複雜的生命週期模型學習起來並不容易

   四、控制不靈活

   五、ViewState處理

ASP.Net MVC的開發方式

• 2009年第一個開源項目版本發佈

• 更加簡潔,更加接近原始的「請求-處理-響應」

• 更加開發、更多的新的特色、社區活躍

• 不會取代WebForm

• 底層跟WebForm都是同樣的。管道上不一樣的處理而已

• MVC只是表示層的一種新的方式

MVC是微軟2009對外公佈的第一個開源的表示層框架,這是微軟的第一個開源項目

MVC目的不是取代WebFrom開發,只是web開發的另一種選擇

爲何要學習ASP.Net MVC?

MVC架構模式誕生30年後,由於其提供的良好的鬆耦合、易於擴展、高可維護性等優勢,從新在開發社區火起來。做爲微軟全新的Web網站開發框架,ASP.NET MVC提供了全新的開發模式,完美支持經典的MVC架構模式。爲.NET工程師提供了徹底不一樣的開發體驗。

愈來愈多的公司和開發者開始加入到MVC開發模式中來,使他進入了一個高速發展的狀態,而如今MVC已經變成了ASP.NET下的一種常見的開發模式,它能讓你學習一種徹底不一樣的架構,因此這是咱們有理由也有必要掌握的一項開發技能。

ASP.Net MVC學習路線

要有C#、ADO.Net、html、javascript、ASP.Net WebForm的基礎

MVC簡介

 MVC 模式兩種理解:一種是表現模式,另一種是架構模式。這裏我主要將其理解爲表現模式。

它將應用程序分紅三個主要組件即:視圖(View)控制器(Controller)模型(Model)

M:Model 主要是存儲或者是處理數據的組件Model實際上是實現業務邏輯層對實體類相應 數據庫操做,如:

CRUD(C:Create/R:Read/U:Update/D:Delete)。它包括數據、驗證規則、數據訪問和業務邏輯等應用程序信息。ViewModel:視圖模型

V:View 是用戶接口層組件。主要是將Model中的數據展現給用戶。ASPX和ASCX文件被用來處理視圖的職責。

C:Controller 處理用戶交互,從model中獲取數據並將數據傳給指定的view

 

表現模式(UI/Presentation Pattern)三個角色

Model:用於存儲數據的組件

View:根據Model數據進行,內容展現的組件

Controller:接受並處理用戶指令(操做Model),選擇一個View並輸出內容

MVC是 模型(Model),視圖(View)和控制(Controller)的縮寫,其目的實現Web系統的職能分工。其中Model層實現系統中的業務邏輯,一般能夠用JavaBean或EJB來實現; View層用於與用戶的交互,一般用JSP來實現; Controller層是Model與View之間溝通的橋樑,它能夠分派用戶的請求並選擇恰當的視圖以用於顯示,同時它也能夠解釋用戶的輸入並將它們映射爲模型層可執行的操做。

MVC請求模型

 

控制器(Controller)- 負責轉發請求,對請求進行處理。
視圖 (View) - 界面設計人員進行圖形界面設計。
模型 (Model)-業務邏輯、數據、驗證規則、數據訪問等等

模型是一個概念,不要對應到多架構的某個層

View 和 Controller均可以直接請求Model,可是Model不依賴View和controller

Controller能夠直接請求View來顯示具體頁面,View不依賴Controller

真正和用戶打交道的是 控制器,視圖/模型 只是被控制器調用併產生html代碼而已。

MVC優勢

一、很容易將複雜的應用分紅M、V、C三個組件模型。經過model、view和controller有效的簡化了複雜的架構,體現了很好的隔離原則

二、由於沒有使用server-based forms 。因此咱們程序員控 制的更加靈活,頁面加乾淨

三、能夠控制生成自定義的url。對於seo友好的url更是不在話下

四、強類型View實現,更安全、更可靠、更高效。

五、讓web開發能夠專一於某一層,有利於開發中的分工,更利於分工配合適用於大型架構開發

六、不少企業已經使用MVC做爲項目開發框架,招聘明確要求熟悉MVC開發模式,我如今作的項目架構就是mvc+ef+wcf+…

七、鬆耦合、易於擴展和維護

八、有利於組件的重用

九、ASP.NET MVC更好的支持單元測試(Unit Test)

十、在團隊開發模式下表現更出衆

MVC 代碼和頁面完全分離,WebForm:codebehind技術沒有徹底對代碼和前臺頁面進行分離

MVC的約定

控制器的約定大於配置

一、Controller放到controllers文件夾中,而且命名方式以Controller結尾

二、每一個Controller都對應View中的一個文件夾,文件夾的名稱跟Controller名相同Controller中的方法名都對應一個View視圖(非必須,可是建議這麼作)並且View的名字跟Action的名字相同

三、控制器必須是非靜態類,而且要實現IController接口

四、Controller類型能夠放到其餘項目中。

視圖的相關約定

一、全部的視圖必須放到Views目錄下

二、不一樣控制器的視圖用文件夾進行分割,每一個控制器都對應一個視圖目錄

三、通常視圖名字跟控制器的Action相對應(非必須)

四、多個控制器公共的視圖放到Shared

我的的感受:自從接觸了MVC,就不再想拖控件了...

相關文章
相關標籤/搜索