MVC 模式(Model–view–controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。wiki 開宗明義就是這麼說, 且在 1978 年就被提出, 至今已經將近 40 年。說穿了就是一種關注點分離設計概念, 後來各個語言都基於這個概念推出自己的 MVC 架構。ASP.NET MVC 算是發展較晚, 但發展至今大家已經離不開他了。
ASP.NET MVC 的發展歷史, 各版本有滿多差異, 接手 MVC 專案時要特別注意 MVC 版本, 免得一直拿新版本功能硬幹, 或 Install-Package UpgradeMvc3ToMvc4 指令不小心下去, 結果專案死透了。
如果真的踩到舊版本的雷, 很想進行舊版本 MVC 升級, 可以參考MVC 3 → MVC 4, MVC 3 → MVC 5, MVC 4 → MVC 5。建議有機會升級就升級, 為什麼 ? 可以使用較新版的 .NET Framework, 新版的 C# 語法支持, 新版的 Nuget 依賴套件, 接近開源社群, 使用新功能, 採新版本的雷 (疑?)..., 你懂我在說什麼。
ASP.NET MVC 的發展歷史, 各版本有滿多差異, 接手 MVC 專案時要特別注意 MVC 版本, 免得一直拿新版本功能硬幹, 或 Install-Package UpgradeMvc3ToMvc4 指令不小心下去, 結果專案死透了。
ASP.NET
ASP.NET MVC 的起源其實是 ASP.NET 技術框架, ASP.NET 技術開發歷史如下 :1996 : Active Server Pages (ASP)- 2002 : ASP.NET
- 2008 : ASP.NET MVC
- 2010 : ASP.NET Web Pages (Razor)
- 2012 : ASP.NET Web API, SignalR (MVC 4, MVC5)
- 2014 : ASP.NET 5 (ASP.NET Core, Open Source)
ASP.NET is a free web framework for building great websites and web applications using HTML, CSS, and JavaScript. You can also create Web APIs and use real-time technologies like Web Sockets.
ASP.NET MVC
時間過得真快, 微軟 ASP.NET MVC 框架已經發展快 10 年了 (2007 ~ 2017截稿), 近年來更是每年更新一版, 你在用的是哪一版呢 ? 我自己最多也曾經在服務的公司使用 ASP.NET MVC 5 + Web API 2, 搭配 .NET Framework 4.5, IIS 7.5, SQL Server 2008 R2, 就沒有更新了 (哭哭)。- 2011以前 MVC 3
- 2012 MVC 4
- 2013 MVC 5 (發展版本最多, 最火)
- 2015 MVC 6
- 2016 Core MVC 1.0
Release history Date | Version |
10 December 2007 | ASP.NET MVC CTP |
13 March 2009 | ASP.NET MVC 1.0 |
16 December 2009 | ASP.NET MVC 2 RC |
4 February 2010 | ASP.NET MVC 2 RC 2 |
10 March 2010 | ASP.NET MVC 2 |
6 October 2010 | ASP.NET MVC 3 Beta |
9 November 2010 | ASP.NET MVC 3 RC |
10 December 2010 | ASP.NET MVC 3 RC 2 |
13 January 2011 | ASP.NET MVC 3 |
20 September 2011 | ASP.NET MVC 4 |
15 February 2012 | ASP.NET MVC 4 Beta |
31 May 2012 | ASP.NET MVC 4 RC |
15 August 2012 | ASP.NET MVC 4 |
30 May 2013 | ASP.NET MVC 4 4.0.30506.0 |
26 June 2013 | ASP.NET MVC 5 Preview |
23 August 2013 | ASP.NET MVC 5 RC 1 |
17 October 2013 | ASP.NET MVC 5 |
17 January 2014 | ASP.NET MVC 5.1 |
10 February 2014 | ASP.NET MVC 5.1.1 |
4 April 2014 | ASP.NET MVC 5.1.2 |
22 June 2014 | ASP.NET MVC 5.1.3 |
1 July 2014 | ASP.NET MVC 5.2.0 |
28 August 2014 | ASP.NET MVC 5.2.2 |
9 February 2015 | ASP.NET MVC 5.2.3 |
6 November 2014 | ASP.NET MVC 6.0.0-beta1 |
18 November 2015 | ASP.NET MVC 6.0.0-rc1 |
17 May 2016 | ASP.NET Core MVC 1.0.0-rc2 |
12 August 2016 | ASP.NET Core MVC 1.0.0 |
17 August 2016 | ASP.NET Core MVC 1.0.1 |
17 November 2016 | ASP.NET Core MVC 1.0.2 |
18 November 2016 | ASP.NET Core MVC 1.1.0 |
ASP.NET Core
根據微軟官網 Choose between ASP.NET and ASP.NET Core 文章, Core 版本重點就在開源以及跨平台支持。ASP.NET Core | ASP.NET |
Build for Windows, Mac, or Linux | Build for Windows |
Use MVC or Web API | Use Web Forms, SignalR, MVC, Web API, or Web Pages |
Multiple versions per machine | One version per machine |
Develop with Visual Studio or Visual Studio Code using C# | Develop with Visual Studio using C#, VB or F# |
New platform | Mature platform |
Ultra performance | High performance |
Choose .NET Framework or .NET Core runtime | Use .NET Framework runtime |
ASP.NET MVC版本特性
先不講 Entity Framework, MVC 各版本的功能變化很大, 有開發過的人應該有些感觸, 也會一直有想升級的謎之音才對。MVC Version | Visual Studio | .NET Version | Release date | Features |
MVC 1.0 | VS2008 | .NET 3.5 | 2009/03/13 | - Older Versions - MVC 1 and 2 |
MVC 2.0 | VS2008, | .NET 3.5/4.0 | 2010/03/10 | - Older Versions - MVC 1 and 2 |
MVC 3.0 | VS2010 | .NET 4.0 | 2011/01/13 | - NuGet 整合 - 支持 H5 的專案樣板 - 包含功能強大的 Razor View 引擎 - IoC 功能與全域過濾器 - 更豐富 JavaScript、jQuery 操作支持 - 其他 release notes |
MVC 4.0 | VS2010 (SP1), VS2012 | .NET 4.0/4.5 | 2012/08/15 | - 新增 Web API 專案範本 - 增加 Mobile WebSite 開發的範本 - 支援 Azure SDK 的開發 - 支援新的非同步Controller 解決方案 - 其他 release notes |
MVC 5.0 | VS2013 | .NET 4.5 | 2013/10/17 | - One ASP.NET, 可同時選擇 Web Forms / MVC / Web API 範本與可變更驗證方式 - ASP.NET Identity, 整合會員管理機制, 整合 Facebook、Google、Twitter 登入 - Bootstrap 為預設專案範本 - 身分驗證過濾器IActionFilter、IAuthenticationFilter - Filter overrides, 彈性針對 Action 或 Controller 取消特定類型的過濾器 - Attribute routing, 更彈性直覺針對 Action 或 Controller 做路由設定 - 其他 release notes |
MVC 5.1/5.2 | VS2013 | .NET 4.5 | 2014/08/28 | - 路由功能問題修正與強化 - MVC EditorTemplates可套用於Bootstrap EditorTemplates - Enum support in views, 如@Html.EnumDropDownList , 適合下拉選單使用列舉型別操作 - Unobtrusive validation for MinLength/MaxLength Attributes - 字串長度驗證 - 其他 5.1 release notes - 其他 5.2 release notes |
(參考 微軟官方技術白皮書)
如果真的踩到舊版本的雷, 很想進行舊版本 MVC 升級, 可以參考MVC 3 → MVC 4, MVC 3 → MVC 5, MVC 4 → MVC 5。建議有機會升級就升級, 為什麼 ? 可以使用較新版的 .NET Framework, 新版的 C# 語法支持, 新版的 Nuget 依賴套件, 接近開源社群, 使用新功能, 採新版本的雷 (疑?)..., 你懂我在說什麼。
參考資料
- https://zh.wikipedia.org/wiki/MVC
- https://zh.wikipedia.org/wiki/ASP.NET_MVC_Framework
- https://en.wikipedia.org/wiki/ASP.NET_MVC
- https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/
- https://docs.microsoft.com/en-us/aspnet/mvc/mvc3
- https://docs.microsoft.com/en-us/aspnet/mvc/mvc4
- https://docs.microsoft.com/en-us/aspnet/whitepapers/mvc4-release-notes
- https://docs.microsoft.com/en-us/aspnet/mvc/mvc5
- https://dotblogs.com.tw/jasonyah/2013/09/26/asp_net-mvc5-new-feature
- https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/mvc51-release-notes
- https://docs.microsoft.com/en-us/aspnet/core/mvc/overview
- https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/whats-new-in-aspnet-mvc-52
- https://docs.microsoft.com/en-us/aspnet/web-api/
- https://docs.microsoft.com/en-us/aspnet/signalr/
- https://www.nuget.org/packages/UpgradeMvc3ToMvc4/
- https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2
- https://stackoverflow.com/questions/22642329/some-official-or-not-upgrade-mvc3-to-mvc5-guide
- http://www.tutorialsteacher.com/mvc/asp.net-mvc-version-history
- https://docs.microsoft.com/en-us/aspnet/web-pages/overview/getting-started/introducing-aspnet-web-pages-2/getting-started
- http://www.cnblogs.com/liangxiaofeng/p/5840754.html
- https://docs.microsoft.com/zh-tw/aspnet/core/choose-aspnet-framework
- https://blogs.msdn.microsoft.com/msdntaiwan/2013/12/04/responsive-web-design-rwd/
Nice post, Thanks for sharing Get more update at
ReplyDeleteDot Net Online Training
kayseriescortu.com - alacam.org - xescortun.com
ReplyDeleteperde modelleri
ReplyDeletesms onay
TÜRK TELEKOM MOBİL ÖDEME BOZDURMA
Nft Nasil Alinir
ankara evden eve nakliyat
trafik sigortası
dedektör
WEBSİTE KURMA
AŞK KİTAPLARI
Escape to a luxurious resort in jaipur, where royal elegance meets modern comfort. Enjoy world-class amenities, serene landscapes, and unforgettable experiences.
ReplyDelete