[.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向...
[.net 面向?qū)ο蟪绦蛟O(shè)計(jì)深入](4)MVC 6 ——談?wù)凪VC的版本變遷及新版本6.0發(fā)展方向
?
?1.關(guān)于MVC
在本篇中不再詳細(xì)介紹MVC的基礎(chǔ)概念,這些東西百度要比我寫(xiě)的全面多了,MVC從1.0到5.0的時(shí)間也不短了,很多人只是按照范例去使用MVC的一些基礎(chǔ)功能,并沒(méi)有更加深入的了解MVC。在這一系列中,我主要介紹MVC的一些原理和使用技巧,以及MVC的發(fā)展方向。
先說(shuō)說(shuō)MVC,首先他是一種設(shè)計(jì)模式,如果你百度為什么GOF23種設(shè)計(jì)模式中沒(méi)有MVC,答案很有意思,如下:
“在他們看來(lái),它其實(shí)是其它三個(gè)經(jīng)典的設(shè)計(jì)模式的演變:觀察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和組合模式(Composite)。根據(jù)MVC在框架中的實(shí)現(xiàn)不同可能還會(huì)用到工廠模式(Factory)和裝飾器(Decorator)模式?!?/span>
.NET MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設(shè)計(jì)創(chuàng)建 Web 應(yīng)用程序的模式。- Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù)。
- View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。
- Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。
2.MVC發(fā)展史
(1)MVC 1.0
發(fā)布時(shí)間:(2009年3月13日) 2007年.NET 1.0開(kāi)始研發(fā),2009年3月13日.NET MVC 1.0正式發(fā)布
簡(jiǎn)介:隨著.NET WebFrom的使用人數(shù)較多,1.0版本發(fā)布后很大一部分開(kāi)發(fā)者仍然使用WebFrom這種拖控件的方式開(kāi)發(fā)Web應(yīng)用程序,MVC 1.0使用人數(shù)并不是很多,只能算是一個(gè)嬰兒。
(2)MVC 2.0
發(fā)布時(shí)間:(2010年3月)
簡(jiǎn)介:核心框架還是延續(xù)了1.0,但在Visual Studio工具上進(jìn)行了改善、使用Html.RenderAction支持渲染網(wǎng)頁(yè)或網(wǎng)站的某一部分等。這段時(shí)間很多開(kāi)發(fā)者都在使用三層架構(gòu)開(kāi)發(fā)了對(duì)MVC的表現(xiàn)、邏輯分離的思想也進(jìn)一步認(rèn)識(shí),很多開(kāi)發(fā)者已經(jīng)慢慢從WebForm向MVC轉(zhuǎn)化。
(3)MVC 3.0
發(fā)布時(shí)間:(2011年1月)
簡(jiǎn)介:最大的變化就是,支持Razor視圖引擎、有豐富的JS支持(比如Jquery)等,靈活性更高了,大量開(kāi)發(fā)者基本拋棄了WebForm轉(zhuǎn)向MVC。
(4)MVC 4.0
發(fā)布時(shí)間:(2012年)(隨VS 2012一起發(fā)布)
簡(jiǎn)介:MVC 4.0經(jīng)過(guò)幾個(gè)版本變遷,已經(jīng)變得非常成熟。增加了手機(jī)、Web Api等模板,增加腳本壓縮合并,支持HTML5,增加JS庫(kù),對(duì)EF的支持等。幾乎基于.NET Web項(xiàng)目都進(jìn)入MVC時(shí)代。并進(jìn)入完全開(kāi)源時(shí)代(MVC之前開(kāi)放源碼,但不支持修改和貢獻(xiàn),4.0是真正意義上的開(kāi)源)
(5)MVC 5.0?
發(fā)布日期:(2013年)
簡(jiǎn)介:相對(duì)于MVC 4.0 MVC進(jìn)一步優(yōu)化,WebApi 2.0、增強(qiáng)路由(Attribute Routing)、進(jìn)一步增強(qiáng)對(duì)JS庫(kù)的支持,包括新增流行的bootstrap等,.NET Web項(xiàng)目上MVC使用者持續(xù)增長(zhǎng)。
(6)MVC 6.0?
發(fā)布日期:(2016年?月)(正式版發(fā)布日期待定)
簡(jiǎn)介:
a.跨平臺(tái)部署開(kāi)發(fā):這將是一個(gè)跨時(shí)代的作品,包括.NET 5.0將命名為 Core 1.0,微軟為了徹底解耦,拆分了所有功能,把.NET Framework幾乎重寫(xiě)了一遍, 兼容老版本同時(shí),支持跨平臺(tái)部署。
在設(shè)計(jì)中很多地方借鑒了nodejs。而且將ASP.NET 下子項(xiàng)目開(kāi)源,(開(kāi)源地址:https://github.com/aspnet/)。并提供了跨平臺(tái)開(kāi)發(fā)工具Visual Studio Code,可運(yùn)行于 Mac OS X、Windows和 Linux 之上。
b.框架整合:MVC 6整合了MVC、WebAPI、WebPage,徹底移除了WebForm。在View上提供Tag Helpers和View Components,真正意義上的前端DOM和JS分離,終于可以看到正常的HTML頁(yè)面了。
c.進(jìn)一步增強(qiáng)前端:內(nèi)置了Nodejs、NPM、Grunt、Bower技術(shù),支持AngularJS。
d.支持依賴注入技術(shù),提供原生的DI框架,同時(shí)支持第三方容器。
e.支持xUnit.net,拋棄Visual Studio Unit Testing框架。
f.IDE依然強(qiáng)大:除了延續(xù)VS2013的強(qiáng)大功能之外,還支持Nodejs、Python開(kāi)發(fā),支持Android和iOS開(kāi)發(fā)等。
3.MVC 優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
a.分層設(shè)計(jì),職責(zé)分離,易維護(hù)
b.強(qiáng)大的路由,URL路由模塊是負(fù)責(zé)映射從瀏覽器請(qǐng)求到特定的控制器動(dòng)作,提供了豐富重寫(xiě)。
c.出色的單元測(cè)試支持。
d.團(tuán)隊(duì)開(kāi)發(fā)中的優(yōu)秀表現(xiàn)。
e.開(kāi)源(我想這個(gè)絕對(duì)是優(yōu)點(diǎn))
缺點(diǎn):
a.框架的普遍缺點(diǎn),開(kāi)發(fā)過(guò)程中需要遵循模型、視圖、控制器分離等規(guī)則,增加了結(jié)構(gòu)復(fù)雜性。同時(shí)結(jié)構(gòu)的復(fù)雜性,降低了運(yùn)行效率。
b.視圖模型頻繁訪問(wèn),一定程度上也損害了操作性能。
4.總結(jié):
隨著MVC的版本更迭,其性能也一直在提升,特別是進(jìn)入完全開(kāi)源之后,相信發(fā)展會(huì)越來(lái)越好,畢竟有全世界的大牛添磚加瓦。
==============================================================================================
返回目錄
<如果對(duì)你有幫助,記得點(diǎn)一下推薦哦,如有有不明白或錯(cuò)誤之處,請(qǐng)多交流>
<對(duì)本系列文章閱讀有困難的朋友,請(qǐng)先看?《.net 面向?qū)ο缶幊袒A(chǔ)》?和?《.net 面向?qū)ο蟪绦蛟O(shè)計(jì)進(jìn)階》?>
<轉(zhuǎn)載聲明:技術(shù)需要共享精神,歡迎轉(zhuǎn)載本博客中的文章,但請(qǐng)注明版權(quán)及URL>
.NET 技術(shù)交流群:467189533
==============================================================================================
總結(jié)
以上是生活随笔為你收集整理的[.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VS.NET版本与VC版本对应关系
- 下一篇: vc服务器的作用,总结虚拟化服务器的好处