Asp.Net的兩種開發方式


來源:http://www.zhidao91.com/asp-net/

在經過對.Net平台深入的學習以后,我發現很多語言開發動態網站時,它的后台邏輯都差不多是相同的,今天在這里我給大家來聊聊在.Net平台下網站的開發!

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

WebForm的開發方式

  1. 服務器端控件
  2. 一般處理程序+Html靜態頁+Ajax
  3. 一般處理程序+Html模板

WebForm模型

C#12

MVC請求模型

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

WebForm 優點

  1. 支持事件模型開發。得益於豐富的服務器端組件,webfrom開發可以迅速的搭建web應用
  2. 使用方便,入門容易
  3. 控件豐富

WebForm 缺點

  1. 封裝太強,很多底層東西讓我們初學者不是很明白
  2. 入門容易,提升很難
  3. 復雜的生命周期模型學習起來並不容易
  4. 控制不靈活
  5. ViewState處理

ASP.Net MVC的開發方式

  1. 2009年第一個開源項目版本發布
  2. 更加簡潔,更加接近原始的“請求-處理-響應”
  3. 不會取代WebForm
  4. 底層跟WebForm都是一樣的。管道上不同的處理而已
  5. MVC只是表示層的一種新的方式
  6. MVC是微軟2009對外公布的第一個開源的表示層框架,這是微軟的第一個開源項目
  7. 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
cc#JPG
表現模式(UI/Presentation Pattern)三個角色

Model:用於存儲數據的組件

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

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

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

MVC請求模型

C#
控制器(Controller)- 負責轉發請求,對請求進行處理。
視圖 (View) – 界面設計人員進行圖形界面設計。
模型 (Model)-業務邏輯、數據、驗證規則、數據訪問等等
模型是一個概念,不要對應到多架構的某個層

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

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

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

MVC優點

  1. 很容易將復雜的應用分成M、V、C三個組件模型。通過model、view和controller有效的簡化了復雜的架構,體現了很好的隔離原則
  2. 因為沒有使用server-based forms 。所以我們程序員控 制的更加靈活,頁面加干凈
  3. 可以控制生成自定義的url。對於seo友好的url更是不在話下
  4. 強類型View實現,更安全、更可靠、更高效。
  5. 讓web開發可以專注於某一層,有利於開發中的分工,更利於分工配合適用於大型架構開發
  6. 很多企業已經使用MVC作為項目開發框架,招聘明確要求熟悉MVC開發模式,我現在做的項目架構就是mvc+ef+wcf+
  7. 松耦合、易於擴展和維護
  8. 有利於組件的重用
  9. ASP.NET MVC更好的支持單元測試(Unit Test)
  10. 在團隊開發模式下表現更出眾

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

控制器的約定大於配置

  1. Controller放到controllers文件夾中,並且命名方式以Controller結尾
  2. 每個Controller都對應View中的一個文件夾,文件夾的名稱跟Controller名相同Controller中的方法名都對應一個View視圖(非必須,但是建議這么做)而且View的名字跟Action的名字相同
  3. 控制器必須是非靜態類,並且要實現IController接口
  4. Controller類型可以放到其他項目中。

視圖的相關約定

  1. 所有的視圖必須放到Views目錄下
  2. 不同控制器的視圖用文件夾進行分割,每個控制器都對應一個視圖目錄
  3. 一般視圖名字跟控制器的Action相對應(非必須)
  4. 多個控制器公共的視圖放到Shared

總體來說,MVC是一個很強大的東西,你對他有多了解,你就能做出來多好的網站!

0

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM