[.net 物件導向程式設計深入](4)MVC 6 —— 談談MVC的版本變遷及新版本6.0發展方向

yubinfeng發表於2016-02-26

[.net 物件導向程式設計深入](4MVC 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)模式。”

.NET MVC 是一種使用 MVC(Model View Controller 模型-檢視-控制器)設計建立 Web 應用程式的模式。
  • 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>

.NET 技術交流群:467189533 .NET 程式設計

==============================================================================================

相關文章