中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

ASP.NET MVC 入門介紹 (上)

  參考文章 ASP.NET MVC Overview.

  1. MVC模式

  MVC模式是一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個(gè)部分:模型(Model),視圖(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1974年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀(jì)80年代為程序語言Smalltalk發(fā)明的一種軟件設(shè)計(jì)模式。MVC模式的目的是實(shí)現(xiàn)一種動(dòng)態(tài)的程序設(shè)計(jì),使后續(xù)對(duì)程序的修改和擴(kuò)展簡(jiǎn)化,并且使程序某一部分的重復(fù)利用成為可能。除此之外,此模式通過對(duì)復(fù)雜度的簡(jiǎn)化,使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對(duì)自身基本部份分離的同時(shí)也賦予了各個(gè)基本部分應(yīng)有的功能。   

  模型(Model) “數(shù)據(jù)模型”(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法。“模型”有對(duì)數(shù)據(jù)直接訪問的權(quán)力,例如對(duì)數(shù)據(jù)庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關(guān)心它會(huì)被如何顯示或是如何被操作。但是模型中數(shù)據(jù)的變化一般會(huì)通過一種刷新機(jī)制被公布。為了實(shí)現(xiàn)這種機(jī)制,那些用于監(jiān)視此模型的視圖必須事先在此模型上注冊(cè),從而,視圖可以了解在數(shù)據(jù)模型上發(fā)生的改變.

  視圖(View) 視圖層能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示(理論上,這不是必需的)。在視圖中一般沒有程序上的邏輯。為了實(shí)現(xiàn)視圖上的刷新功能,視圖需要訪問它監(jiān)視的數(shù)據(jù)模型(Model),因此應(yīng)該事先在被它監(jiān)視的數(shù)據(jù)那里注冊(cè)。

  控制器(Controller) 控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)。“事件”包括用戶的行為和數(shù)據(jù)模型上的改變。

  在最初的JSP網(wǎng)頁中,像數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起。經(jīng)驗(yàn)比較豐富的開發(fā)者會(huì)將數(shù)據(jù)從表示層分離開來,但這通常不是很容易做到的,它需要精心地計(jì)劃和不斷的嘗試。MVC從根本上強(qiáng)制性地將它們分開。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的工作,但是它帶給我們的好處是毋庸置疑的。

  首先,多個(gè)視圖能共享一個(gè)模型。如今,同一個(gè)Web應(yīng)用程序會(huì)提供多種用戶界面,例如用戶希望既能夠通過瀏覽器來收發(fā)電子郵件,還希望通過手機(jī)來訪問電子郵箱,這就要求Web網(wǎng)站同時(shí)能提供InterNET界面和WAP界面。在MVC設(shè)計(jì)模式中,模型響應(yīng)用戶請(qǐng)求并返回響應(yīng)數(shù)據(jù),視圖負(fù)責(zé)格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶,業(yè)務(wù)邏輯和表示層分離,同一個(gè)模型可以被不同的視圖重用,所以大大提高了代碼的可重用性。

  其次,控制器是自包含(self-contained)指高獨(dú)立內(nèi)聚的對(duì)象,與模型和視圖保持相對(duì)獨(dú)立,所以可以方便的改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。例如,把數(shù)據(jù)庫從MySQL移植到Oracle,或者把RDBMS數(shù)據(jù)源改變成LDAP數(shù)據(jù)源,只需改變控制器即可。一旦正確地實(shí)現(xiàn)了控制器,不管數(shù)據(jù)來自數(shù)據(jù)庫還是LDAP服務(wù)器,視圖都會(huì)正確地顯示它們。由于MVC模式的三個(gè)模塊相互獨(dú)立,改變其中一個(gè)不會(huì)影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的少互擾性的構(gòu)件。

  此外,控制器提高了應(yīng)用程序的靈活性和可配置性。控制器可以用來連接不同的模型和視圖去完成用戶的需求,也可以構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇適當(dāng)?shù)哪P蜋C(jī)型處理,然后選擇適當(dāng)?shù)牡囊晥D將處理結(jié)果顯示給用戶。

  2. Hello world 之 ASP.NET MVC 3

  如果還沒有開發(fā)環(huán)境,先在這里下載Visual Studio 2010和mvc3. 新建一個(gè)MVC3項(xiàng)目,選擇Razor模板引擎。VS已經(jīng)建好了基本的目錄結(jié)構(gòu)和兩個(gè)默認(rèn)的頁面。

image  查看下文件的代碼,可以看到Controllers中的類是處理一些邏輯過程,最終返回View用來生成頁面。Model中的代碼表示的是數(shù)據(jù)和一些基本的驗(yàn)證規(guī)則,View通過Model中的數(shù)據(jù)來填充。運(yùn)行下程序,可以看到一個(gè)基本的網(wǎng)站。MVC網(wǎng)站的運(yùn)行過程是這樣的:

  1. 當(dāng)?shù)谝粋€(gè)請(qǐng)求從客戶端發(fā)起的時(shí)候,首先執(zhí)行的是Global.asax中的Application_Start()方法來完成一些初始化工作,其中重要的一步是RegisterRoutes方法,這個(gè)方法指定了如何將url映射到具體的方法上,稍后詳解。

  2. 根據(jù)第一步中指定的映射表生成一個(gè)RouteData對(duì)象,利用這個(gè)對(duì)象來創(chuàng)建一個(gè)RequestContext對(duì)象。

  3. MvcRouteHandler創(chuàng)建一個(gè)MvcHandler,并將RequestContext對(duì)象傳給MvcHandler。

  4. MvcHandler對(duì)象利用RequestContext對(duì)象確定一個(gè)IControllerFactory對(duì)象來創(chuàng)建Controller對(duì)象。

  5. MvcHandler對(duì)象調(diào)用Controller對(duì)象的Execute()方法。

  6. Controller的ControolerActionInvoker對(duì)象決定調(diào)用controller的哪個(gè)具體的action方法。

  7. Action方法接受用戶參數(shù),執(zhí)行方法,返回一個(gè)Result類型的對(duì)象。

  右擊Controller文件夾,新建一空Controller,命名為HelloWorld,將代碼改為如下:

public class HelloWorldController : Controller
{
public string Index()
{
return "Hello world";
}

public string Hello()
{
return "Hello everyone";
}

public string Hello2(string name)
{
return "Hello to you " + name;
}
}

NET技術(shù)ASP.NET MVC 入門介紹 (上),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: wwww.xxxx免费 | 中文字幕高清一区 | 亚洲精品久久久久久一区二区 | 久久久久av| 亚洲精品电影网在线观看 | 国产乱码精品1区2区3区 | 91夜色在线观看 | www.av在线| 超碰免费在线 | 免费黄色成人 | 日韩视频在线免费观看 | 亚洲午夜精品视频 | 国产精品欧美一区二区三区不卡 | 亚洲综合在线视频 | 久青草影院| 国产黄色大片在线观看 | 欧美亚洲国语精品一区二区 | 亚洲欧美国产一区二区三区 | 国产在线1 | 中文字幕高清视频 | 国产黄色大片在线观看 | 欧美一级三级在线观看 | 久久久精品一区 | 亚洲国产欧美在线人成 | 午夜男人视频 | 日韩毛片免费视频 | 网站黄色av | 国户精品久久久久久久久久久不卡 | 亚洲欧美中文日韩在线v日本 | 中文天堂在线一区 | 欧美成人一区二区三区 | 国产精品乱码一区二区三区 | 欧美阿v | 久久午夜精品 | 中文字幕第90页 | 91精品国产91久久久久青草 | 亚洲日本成人 | 亚洲精品久久久一区二区三区 | 伊人春色在线观看 | 欧美一级大片免费观看 | 日韩在线中文 |