[.net 物件導向程式設計深入](4)MVC 6 ——談談MVC的版本變遷及新版本6.0發展方向
1.關於MVC
在本篇中不再詳細介紹MVC的基礎概念,這些東西百度要比我寫的全面多了,MVC從1.0到5.0的時間也不短了,很多人只是按照範例去使用MVC的一些基礎功能,並沒有更加深入的瞭解MVC。在這一系列中,我主要介紹MVC的一些原理和使用技巧,以及MVC的發展方向。
先說說MVC,首先他是一種設計模式,如果你百度為什麼GOF23種設計模式中沒有MVC,答案很有意思,如下:
“在他們看來,它其實是其它三個經典的設計模式的演變:觀察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和組合模式(Composite)。根據MVC在框架中的實現不同可能還會用到工廠模式(Factory)和裝飾器(Decorator)模式。”
-
Model(模型)是應用程式中用於處理應用程式資料邏輯的部分。通常模型物件負責在資料庫中存取資料。
-
View(檢視)是應用程式中處理資料顯示的部分。
-
Controller(控制器)是應用程式中處理使用者互動的部分。
2.MVC發展史
(1)MVC 1.0
釋出時間:(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.0
釋出時間:(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開發等。
3.MVC 優缺點
優點:
a.分層設計,職責分離,易維護
b.強大的路由,URL路由模組是負責對映從瀏覽器請求到特定的控制器動作,提供了豐富重寫。
c.出色的單元測試支援。
d.團隊開發中的優秀表現。
e.開源(我想這個絕對是優點)
缺點:
a.框架的普遍缺點,開發過程中需要遵循模型、檢視、控制器分離等規則,增加了結構複雜性。同時結構的複雜性,降低了執行效率。
b.檢視模型頻繁訪問,一定程度上也損害了操作效能。
4.總結:
隨著MVC的版本更迭,其效能也一直在提升,特別是進入完全開源之後,相信發展會越來越好,畢竟有全世界的大牛添磚加瓦。
==============================================================================================
<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看 《.net 物件導向程式設計基礎》 和 《.net 物件導向程式設計進階》 >
<轉載宣告:技術需要共享精神,歡迎轉載本部落格中的文章,但請註明版權及URL>
==============================================================================================