使用MVC框架開發網站(一)

概述

本章您將學會:
1.MVC的概念及使用
2.MVC與ASP.NET的區別
3.路由和URL導向
4.控制器和視圖
5.模型與模型狀態
6.過濾器
7…….

第1章_MVC與ASP.NET的區別

1.1概述

  • MVC是一種流行的Web應用架構技術,他把Web應用劃分成Model、Controller和View三部分!
  • 優點:可測試,可維護等
    這裏寫圖片描述
  • MVC是ASP.NET技術的子集(ASP.NETMVC)並列ASP.NETWebFrom

這裏寫圖片描述

1.2本章主要內容

這裏寫圖片描述

1.3MVC簡介

1.3.1MVC是什麼

(1)MVC是一種軟件架構模式,針對具備人機交互功能的軟件和程序
(2)執行順序如下:
這裏寫圖片描述
Web開發的本質流程:請求->處理->響應

1.3.2MVC的歷史

(1)1973年Trygve教授的兩篇論文提出瞭如下軟件設計思想:

1)重寫任何系統的能力
2)模塊化、可插入的透明子系統的存在
3)每個系統的細分
4)系統的可伸縮性
在此基礎之上,演變成了OOP思想

(2)1978年Trygve教授在美國加州,進一步提煉思想,提出了MVC模式

(3)至今,發展成爲計算機科學中最受歡迎的應用程序模式之一

(4)MVC的思想誕生的很久遠,但是真正興起是在WEB時代,

Web纔是MVC的真正土壤

(5)當下流行的MVC架構

1)RubyonRails(2004年7月24歲的美國人)
2)Python世界的Django
3)Java世界的Spring、Struts和JSF
4)PHP世界的Zend

1.3.3.NET中的MVC

(1).NET在MVC方面一直比較落後
(2)MonoRails一個開源的.NETMVC框架
(3)微軟公司的新作-Asp.netMvc(http://www.asp.net/mvc)
(4)優勢:
1)汲取MonoRails的精華
2)收編MVC大牛,博衆家所長,07年底搞出一個版本
3)集C#語言先進性(lambda、匿名類型和dynamic)
4)生產力更高

1.4第一個ASP.NETMVC程序

1.4.1(現場展示)

(1)步驟
1.創建ASP.NETMVC項目
2.創建Controller控制器
3.創建View視圖
(2)引用:
這裏寫圖片描述
(3)Content文件夾:
這裏寫圖片描述
(4)Controllers文件夾:
這裏寫圖片描述
(5)Models文件夾:
這裏寫圖片描述
注:與三層結構的Models不同,他裏可以放實體類、數據訪問類和業務類等等
(6)Scripts文件夾:
這裏寫圖片描述
(7)Views文件夾
這裏寫圖片描述
(8)Shared文件夾
這裏寫圖片描述
注:任何控制器找不到的視圖都會去找Shared下面的
(9)Web.config
這裏寫圖片描述
(10)Global.asax
這裏寫圖片描述
注:應用程序啓動時做一些任務

1.4.2代碼詳解

(1)Global.asax——應用程序啓動註冊路由
當我對這個網站發出請求時,他是如何把我引到對應的控制器及裏面的Action方法?
答:首先網站一啓動,會提前加載根據控制器和Action方法設置的路由規則,
這樣一請求,路由就會分析之後把你引到對應的控制器和Action方法

這裏寫圖片描述
這裏寫圖片描述
(2)控制器
這裏寫圖片描述
1)根據前面的解析,每次請求都是先定位控制器,然後再根據路由規則找到對應的Action方法!
2)但是在路由表裏,我們只寫了Home,但是MVC框架約定,控制器都是以Controller結尾,並繼承了基類Controller!
3)在這裏Index方法返回值類型是ActionResult,方法名和路由註冊的方法名一致,在Index方法內,調用了View方法並且返回,這是一個重載的方法,可以給個參數,作爲返回視圖的名稱,如果沒有參數,默認就是以當前Action命名的視圖。
4)也就是Asp.netMVC架構,不像Java的MVC通過配置來建立關係,他是約定大於配置。

(3)視圖
這裏寫圖片描述
1)視圖裏的代碼類似於之前的ASPX裏面的代碼,主要是HTML、JS和CSS等前端技術構成,
從MVC1.0到MVC5.0變化很大,razor語法越來越完善,強大!
(4)向視圖傳遞數據
1)傳統的方式,前置頁面類和後置代碼類是繼承的關係,可以直接進行數據傳遞
2)MVC模式下,視圖和控制器是完全分離的,通過專用渠道
ViewData,在控制器和視圖之間傳遞數據的容器之一
這裏寫圖片描述
這裏寫圖片描述

1.4.3ASP.NETMVC執行順序

這裏寫圖片描述

1.5MVC初步應用

1.5.1實現學籍管理系統的登錄

這裏寫圖片描述
(1)特別不建議大家在視圖中使用Web服務器端控件
1)優點:事件模型支持,所見即所得!
2)缺點:效率低,Html代碼不純粹!

1.5.2ASP.NETMVC執行過程

這裏寫圖片描述

1.5.3Model和三層架構

注意:在MVC中如果它不屬於View也不屬於Controller,那麼就把它歸到Model中
(1)MVC與三層架構之間有沒有區別?
1)MVC和三層架構沒有必然的關係,架構的思想是不一樣的
2)三層架構強調特理分離(多個項目構成),MVC強調邏輯分離(一個項目構成)
3)MVC中也可以體現三層架構
4)有些MVC企業框架爲了方便管理,會故意把Model做分層設計
這裏寫圖片描述

1.6MVC與ASP.NET

1.6.1ASP.NET與ASP.NETMVC

(1)ASP.NETMVC是ASP.NET技術的子集
(2)它在覈心ASP.NET基礎之上構建
1.依賴於HttpHandler,如請求是如何進入控制器的
2.依賴於Session、Cookie、Cache、Applaction等狀態保持機制
3.使用HttpContext、Request、Response、Server等對象
4.在Controller使用智能感知很容易得到這些對象

(3).NET中編寫WEB程序的一種可選方式
1.WebForms技術是另外一種可選方式

1.6.2MVC與WebForms

(1)WebForms的特色

1)所見即所得,開發傻瓜化
1.服務器端控件
2.事件模型
3.狀態管理
2)借鑑Winforms的成功特色
3)偏離了Web請求處理的原量

(2)Asp.netMVC的特色

1)關注分離
1.WebForm只是把一個頁面分成了前置頁面和後置代碼,不夠徹底
2.MVC可以把一個頁分成三塊,分得更徹底
2)可測試性
3)開發更接近WEB的本質
4)對開發人員的技術水平要求更高

1.7 總結

這裏寫圖片描述

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