MVC学习笔记1 MVC概述
MVC概述
MVC三種角色
– Model:?? 用于存儲(chǔ)數(shù)據(jù)的組件(與領(lǐng)域模型概念不同)。
– View:??? 根據(jù)Model數(shù)據(jù)進(jìn)行內(nèi)容展示的組件
– Controller:接受并處理用戶指令(操作Model),選擇一個(gè)View并輸出內(nèi)容。
MVC概述:兩種分離
? View和數(shù)據(jù)(Model)分離
–能夠?yàn)橄嗤?/span>Model開(kāi)發(fā)不同的View進(jìn)行展示
–分離可視與不可視得組件,能夠?qū)?/span>Model進(jìn)行獨(dú)立測(cè)試(只有View到Model的單向引用)
? View和表現(xiàn)邏輯(Controller)分離
–分離邏輯與具體展示,能夠?qū)壿嬤M(jìn)行獨(dú)立測(cè)試(只有Controller到View的單向引用)
MVC與三層架構(gòu)
? MVC與三層架構(gòu)類(lèi)似?
– View – UI Layer
– Controller – BL Layer
– Model – DA Layer
? 其實(shí)不然
– MVC是表現(xiàn)模式(Presentation Pattern)
–三層架構(gòu)是架構(gòu)模式(Architecture Pattern)
–??? 沒(méi)有太多可比性
MVC之間無(wú)依賴關(guān)系,MVC之間是協(xié)作關(guān)系,沒(méi)有層次的關(guān)系。MVC不是分層。
WebForms vs ASP.NET MVC
? WebForms的優(yōu)點(diǎn)
– 將Web開(kāi)發(fā)抽象成一個(gè)組件模型
– 使用方便,入門(mén)容易
–使控件產(chǎn)業(yè)大大加強(qiáng)
? WebForms的缺點(diǎn)
–封裝太強(qiáng)——這還是Web開(kāi)發(fā)嗎?
– 入門(mén)容易,用好難
– 不易進(jìn)行單元測(cè)試,前后臺(tái)不易配合
? 不過(guò)WebForms也在成長(zhǎng)
?
ASP.NET MVC的優(yōu)勢(shì)
? 直接,Web開(kāi)發(fā)就是Web開(kāi)發(fā)
? 易于對(duì)界面邏輯進(jìn)行單元測(cè)試
– Design for testability
? 易于后臺(tái)與前臺(tái)開(kāi)發(fā)人員的配合
? ASP.NET MVC是在ASP.NET平臺(tái)下開(kāi)發(fā)Web應(yīng)用程序的另一選擇,并非為了取代WebForms。
?
ASP.NET MVC的特點(diǎn)
? 一切都是可替換的
– ViewEngine
– Action Filter
? 一切都是可測(cè)試的
? 公開(kāi)源代碼
– 可以修改
–不可重新發(fā)布
?
?
?
Codeusing?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Web;
using?System.Web.Mvc;
namespace?MvcApplication1.Controllers
{
????//這是一個(gè)規(guī)則,表示如果拋出異常將由規(guī)定頁(yè)面處理
????[HandleError]
????/**////
????///?HomeController對(duì)應(yīng)Views中的Home文件夾
????///?
????public?class?HomeController?:?Controller
????{
????????public?ActionResult?Index()
????????{
????????????ViewData["Message"]?=?"Welcome?to?ASP.NET?MVC!";
????????????//?.return?View();表示要展現(xiàn)一個(gè)aspx頁(yè)面。
????????????//默認(rèn)情況下顯示同名aspx頁(yè)面:Views/Home/Index.aspx
????????????//當(dāng)然你也可以自己指定,例如return?View("index1")
????????????//就是顯示Views/Home/Index1.aspx
????????????return?View();
????????}
????????public?ActionResult?About()
????????{
????????????return?View();
????????}
????}
}
return View();表示要展現(xiàn)一個(gè)aspx 默認(rèn)情況下顯示同名aspx頁(yè)面:Views/Home/Index.aspx 當(dāng)然你也可以自己指定,例如return ?View("index1")就是顯示Views/Home/Index1.aspx
轉(zhuǎn)載于:https://www.cnblogs.com/dupeng0811/archive/2009/06/04/1495958.html
總結(jié)
以上是生活随笔為你收集整理的MVC学习笔记1 MVC概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用VBA去除Excel工作表保护密码
- 下一篇: 面试题(C++09:Autodesk)