asp.net mvc

ASP.NET MVC 是Windows系統下面的Web研發框架,有Microsoft提供。MVC顧名思義:Model, View, Controller.是UI端分層的三層模式。跟三層架構有著本質區別。.Net MVC徹底的分離了前後端,以及抽象層結構的依賴注入,橫切編程模式。用於模型架構的ModelMedata,用於模型驗證的ValidateProvider,用於數據提供的ValueProvider,用於數據綁定的ModeBinder,用於視圖綁定的ViewEngine引擎等。構成了Asp.Net MVC架構的模式。

基本介紹

  • 中文名:微軟Web UI分層框架
  • 外文名:Asp.Net MVC
  • 最新版本ASP.NET MVC 5.2
  • 提供方微軟官方
  • 類別應用程式框架
Asp.Net MVC UI三層模式技術概況,Asp.Net MVC UI三層模式技術點,特色與優點,2.0,3.0,4.0,關鍵技術,

Asp.Net MVC UI三層模式技術概況

一.技術簡介:.Net MVC 為UI端分層框架,是微軟在改進WebForm框架的基礎上革新的一個輕量級Framework。不同於WebForm事件驅動模式,.Net MVC以恢復原本web開發本質為基礎,徹底更新了與Web本質漸行漸遠的事件驅動模式,也改良了WebForm歷史所帶來的枷鎖,同時微軟在框架革新的基礎上進一步開源,成為了跨平台或者技術興趣愛好者的首選Web開發框架。
二 .三層介紹:.Net MVC UI三層,分別為Model(實體類),View(視圖模型層,有人認為只是視圖層,其實是不對的,這個View包含了強類型模型),Controller(控制器,.Net MVC裡面所有的一切Action 或者事件都可以在裡面進行,比如運算元據庫,綁定數據類型,View視圖展示等)
三..Net MVC流程:跟WebForm類似,Asp.Net MVC都是經過管道模型(httpModule,HttpHandler)。.Net MVC引入了Microsoft.Web.AI (實際上是微軟人工智慧的一部分,引入Web程式MVC框架之後,牛刀小試)之後,利用ApplicationInsights作為Module管道,可提高測試性能,提高更大擴展性功能,以及遠程遙控程式運行點數等。拋卻宿主以及IIS寄宿DLL等,.Net MVC 入口點可以看做是MvcHanlder的BeginProcessRequest函式起始運行,通過依賴注入(ID or IOC)初始化Controller類工廠,獲取到當前要被激活的Controller構建ControllerDescriptor。然後在控制器描述類中篩選合適的Action構建ActionDescriptor,以便執行Action。在Aciton執行內部,通過.Net MVC提供的視圖引擎ViewEngine展示CSHTML檔案,通過InputWriter和OutWirter相互轉化構建HTML檔案,展示在客戶端。
四.異步結果包:在構建.Net MVC,然後展示視圖的一系列過程中,異步結果包(AsyncResultWrappper)類起到了至關重要的作用,它不僅構建了整個.Net MVC的運行流程。還控制了.Net MVC同步或者異步運行的過程以及結果。如果把.Net MVC 比喻成一個汽車,那么異步結果包可以視為這台汽車的引擎發動機。異步結果包類是程式集形式的靜態類,它所有函式均為Static,為構建結果包異步(WrapperAsyncResult)做準備,或者是作為啟動點。
五.AOP ,IOC,DI模式:在.Net MVC中,依賴注入(DI),IOC(控制反轉),AOP(面向橫切的編程)是重複幾率使用最為頻發,也是最為核心的三大技術點。DI實質上是一個容器類,容器類裡面包含了當前程式需要注入的點。IOC則是這些控制點需要跳轉到的程式,或者是控制權移交之後需要執行的程式集或者DLL或者一個函式,或者一段代碼。AOP是面向橫切的編程,或者亦稱之為:面向切面的編程。顧名思義:橫切或者切面,就是在程式或者函式上進行一段代碼插入或者攔截,或者做一些其它事情。在.Net MVC 裡面,面向橫切的編程最主要體現在篩選器功能上,這些篩選器可以進一步控制Action或者Controller,寬鬆或者更嚴格的執行你想要的或者是自己想要結果。

Asp.Net MVC UI三層模式技術點

一.Model綁定:Model綁定利用Modelbinder對模型進行數據綁定或者賦值。
二.數據提供模型(ValueProvider):獲取當前提交的數據或者數據流等
三.Model驗證(valuedator):驗證當前模型的正確性
四.Controller類工廠實例化:依靠依賴注入模式激活Controller
五.Action激活:通過Aggregate構建的遞歸鏈執行Action
六.視圖展示:通過ViewEngine 引擎展示IView接口的視圖
七.篩選器(filter):通過AOP編程切入程式的一種技術模式
八.MultiServiceResolver類解析:
九.SingleServiceResolver類解析
十.DependencyResolver類詳解

特色與優點

MVC (Model、View、Controller)將一個Web套用分解為:Model、View和Controller。ASP.NET MVC框架提供了一個可以代替ASP.NETWebForm的基於MVC設計模式的套用。
ASP.NET MVC概述·MVC的優點:
1.通過把項目分成Model、View和Controller,使得複雜項目更加容易維護,減少項目之間的耦合。
2.使用ViewState和伺服器表單控制項,可以更方便的控制應用程式的行為
3.應用程式通過Controller來控制程式請求,並提供了原生的UrlRouting功能來重寫Url。
4.使Web程式對單元測試的支持更加出色
5.在團隊開發模式下表現更出眾
ASP.NET MVC概述·WebForm的優點:
1.採用事件驅動模式來控制應用程式請求,由大量伺服器控制項支持
2.採用頁面控制機制,可以為單個頁面添加事件處理函式
3.沒有使用ViewState和伺服器端頁面,使管理頁面狀態信息更加輕鬆。
4.對人數較少的想使用伺服器端控制項的開發團隊,使用起來更加方便
5.開發起來比MVC模式要輕鬆簡單一些
ASP.NET MVC概述MVC框架特色:
1.分離任務(輸入邏輯,業務邏輯和顯示邏輯),易於測試和默認支持測試驅動開發(TDD)。所有MVC用到的組件都是基於接口並且可以在進行測試時進行Mock,你在不運行ASP.NET進程的情況下進行測試,使得測試更加快速和簡捷。
2.可擴展的簡便的框架。MVC框架被設計用來更輕鬆的移植和定製功能。你可以自定義視圖引擎、UrlRouting規則及重載Action方法等。MVC也支持Dependency Injection (DI,依賴注入) and Inversion of Control (IoC,控制反轉)的良好支持。
3.強大的UrlRouting機制讓你更方便的建立容易理解和可搜尋的Url,為SEO提供更好的支持。Url可以不包含任何檔案擴展名,並且可以重寫Url使其對搜尋引擎更加友好。
4.可以使用ASP.NET現有的頁面標記、用戶控制項、模板頁。你可以使用嵌套模板頁,嵌入表達式<%=%>,聲明伺服器控制項、模板,數據綁定、定位等等。
5.對現有的asp.net程式的支持,mvc讓你可以使用如窗體認證和Windows認證、url認證、組管理和規則、輸出、數據快取、session、profile 、health monitoring、配置管理系統、provider architecture特性。

2.0

Scott Gu在部落格中宣布ASP.NET MVC 2正式版發布,該版本適用於Visual Studio 2008及基於ASP.NET 3.5平台的Visual Web Developer 2008 Express。
在2010年4月12日發布的VS 2010正式版與Visual Web Developer 2010正式版中內置對ASP.NET MVC 2的支持,不需要再另外安裝。
ASP.NET MVC 2是ASP.NET MVC的又一次重大更新,兼容ASP.NETMVC 1,和以前一樣,ASP.NET MVC 2原始碼完全開放。
ASP.NET MVC 2可以與ASP.NET MVC 1並存,也就是說在同一台機器上,可以有的程式用ASP.NET MVC 1,有的程式用ASP.NET MVC 2。

3.0

ASP.NET MVC 3可以與ASP.NET MVC 2並存。
ASP.NET MVC 3中提供了新的View引擎,Razor。

4.0

ASP.NET MVC 4已經正式發布,並內置於Visual Studio 2012,新版本ASP.NET MVC版本新增了手機模版、單頁應用程式,Web API等模版,更新了一些 javascript 庫,其中示例頁面也使用了jquery的AJAX登錄,並增加了OAuth認證/Entity Framework5的支持。同時也增強了對HTML5、AsyncController等的支持。

關鍵技術

ASP .NET MVC內包含若干關鍵技術。
ActionResult : Action 的返回類型
Filter :過濾器
ModelBinder : Model綁定器
Url Routing :Url路由規則
視圖引擎:ASP .NET MVC包含多種視圖引擎,其中以WebForms(即aspx)以及WebPages(Razor)最為常用

相關詞條

熱門詞條

聯絡我們