[.net 面向對象程序設計深刻](4)MVC 6 ——談談MVC的版本變遷及新版本6.0發展方向html
在本篇中再也不詳細介紹MVC的基礎概念,這些東西百度要比我寫的全面多了,MVC從1.0到5.0的時間也不短了,不少人只是按照範例去使用MVC的一些基礎功能,並無更加深刻的瞭解MVC。在這一系列中,我主要介紹MVC的一些原理和使用技巧,以及MVC的發展方向。前端
先說說MVC,首先他是一種設計模式,若是你百度爲何GOF23種設計模式中沒有MVC,答案頗有意思,以下:node
「在他們看來,它實際上是其它三個經典的設計模式的演變:觀察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和組合模式(Composite)。根據MVC在框架中的實現不一樣可能還會用到工廠模式(Factory)和裝飾器(Decorator)模式。」git
(1)MVC 1.0github
發佈時間:(2009年3月13日) 2007年.NET 1.0開始研發,2009年3月13日.NET MVC 1.0正式發佈數據庫
簡介:隨着.NET WebFrom的使用人數較多,1.0版本發佈後很大一部分開發者仍然使用WebFrom這種拖控件的方式開發Web應用程序,MVC 1.0使用人數並非不少,只能算是一個嬰兒。編程
(2)MVC 2.0bootstrap
發佈時間:(2010年3月)設計模式
簡介:核心框架仍是延續了1.0,但在Visual Studio工具上進行了改善、使用Html.RenderAction支持渲染網頁或網站的某一部分等。這段時間不少開發者都在使用三層架構開發了對MVC的表現、邏輯分離的思想也進一步認識,不少開發者已經慢慢從WebForm向MVC轉化。瀏覽器
(3)MVC 3.0
發佈時間:(2011年1月)
簡介:最大的變化就是,支持Razor視圖引擎、有豐富的JS支持(好比Jquery)等,靈活性更高了,大量開發者基本拋棄了WebForm轉向MVC。
(4)MVC 4.0
發佈時間:(2012年)(隨VS 2012一塊兒發佈)
簡介:MVC 4.0通過幾個版本變遷,已經變得很是成熟。增長了手機、Web Api等模板,增長腳本壓縮合並,支持HTML5,增長JS庫,對EF的支持等。幾乎基於.NET Web項目都進入MVC時代。並進入徹底開源時代(MVC以前開放源碼,但不支持修改和貢獻,4.0是真正意義上的開源)
(5)MVC 5.0
發佈日期:(2013年)
簡介:相對於MVC 4.0 MVC進一步優化,WebApi 2.0、加強路由(Attribute Routing)、進一步加強對JS庫的支持,包括新增流行的bootstrap等,.NET Web項目上MVC使用者持續增加。
(6)MVC 6.0
發佈日期:(2016年?月)(正式版發佈日期待定)
簡介:
a.跨平臺部署開發:這將是一個跨時代的做品,包括.NET 5.0將命名爲 Core 1.0,微軟爲了完全解耦,拆分了全部功能,把.NET Framework幾乎重寫了一遍, 兼容老版本同時,支持跨平臺部署。
在設計中不少地方借鑑了nodejs。並且將ASP.NET 下子項目開源,(開源地址:https://github.com/aspnet/)。並提供了跨平臺開發工具Visual Studio Code,可運行於 Mac OS X、Windows和 Linux 之上。
b.框架整合:MVC 6整合了MVC、WebAPI、WebPage,完全移除了WebForm。在View上提供Tag Helpers和View Components,真正意義上的前端DOM和JS分離,終於能夠看到正常的HTML頁面了。
c.進一步加強前端:內置了Nodejs、NPM、Grunt、Bower技術,支持AngularJS。
d.支持依賴注入技術,提供原生的DI框架,同時支持第三方容器。
e.支持xUnit.net,拋棄Visual Studio Unit Testing框架。
f.IDE依然強大:除了延續VS2013的強大功能以外,還支持Nodejs、Python開發,支持Android和iOS開發等。
優勢:
a.分層設計,職責分離,易維護
b.強大的路由,URL路由模塊是負責映射從瀏覽器請求到特定的控制器動做,提供了豐富重寫。
c.出色的單元測試支持。
d.團隊開發中的優秀表現。
e.開源(我想這個絕對是優勢)
缺點:
a.框架的廣泛缺點,開發過程當中須要遵循模型、視圖、控制器分離等規則,增長告終構複雜性。同時結構的複雜性,下降了運行效率。
b.視圖模型頻繁訪問,必定程度上也損害了操做性能。
隨着MVC的版本更迭,其性能也一直在提高,特別是進入徹底開源以後,相信發展會愈來愈好,畢竟有全世界的大牛添磚加瓦。
==============================================================================================
<若是對你有幫助,記得點一下推薦哦,若有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看 《.net 面向對象編程基礎》 和 《.net 面向對象程序設計進階》 >
<轉載聲明:技術須要共享精神,歡迎轉載本博客中的文章,但請註明版權及URL>
==============================================================================================