[Visual Studio] 我的 Visual Studio 20 年

今年是 Visual Studio 的二十歲生日,要說資深的 Visual Studio 愛用者,我應該也可以算一個吧,在我最早開始學習程式開發時,Visual Studio 都還沒出來喔。既然 VS 20 歲了,那我也稍微的寫點文字來慶祝一下 VS 20 週年吧。不過因為我比較擅長實事描寫,要看逢迎拍馬內容的就甭進來了。

據維基百科上的記載,Visual Studio 最早是由 1997 年 2 月開始,香港回歸中國前,也是我被騙進國防部前。我最早最早使用的開發工具是 Visual Basic 3.0 以及 Visual C++ 1.52,在 Windows 95 / NT 4 推出時開發工具也更新到 Visual Basic 4.0 以及 Visual C++ 4.0,當時就有 Visual Studio 的風聲,也就是傳言中的 Visual Studio 1.0,但是 Visual Studio 真正推出到市場的版本是 1997/2 的 Visual Studio 97,內含了 Visual Basic, Visual C++, Visual FoxPro, Visual InterDev 以及 Visual J++ 等開發工具 (除了 Visual InterDev 1.0 以及 Visual J++ 1.1 外,其他都是 5.0),是微軟第一套開發工具套件集,讓企業或開發團隊能用 2.5 種左右的開發工具的價格就能得到全套的視覺化開發工具。

Visual Basic, Visual C++ 和 Visual FoxPro 等都是大家耳熟能詳的開發工具,不過 Visual InterDev 相信現在的後進應該沒聽過這玩意,它是當時用來開發 ASP 的 IDE,但我個人覺得它不好用...。Visual J++ 則是一套能開發 Java 應用程式的開發工具,與當時 Visual C++ 的 IDE (Microsoft Developer Studio) 整合在一起,可看得出來當時微軟將 Java 和 C++ 視為同等重要的開發工具喔,只是那時 Java 只能開發 Applet,在網頁上玩玩的玩具而己...。

後來在 1998 年 6 月,微軟發表了 Visual Studio 6.0,這個版本是微軟開發工具中最長壽的版本 (1998/6~2002/2,長達 3 年多),包含了 Visual Basic, Visual C++, Visual FoxPro, Visual InterDev, Visual J++ 等開發工具 (當然還有像 Office Developer Edition, SQL Server Developer Edition, Windows Server 等授權),裡面除了一本 Visual Studio Development Guide、還有紙本授權合約以及一堆光碟,當時微軟提供的盒裝照片看起來還好,等到真的看到實品時才發現它那麼厚...

Visual Studio 6.0 真的是微軟進軍 Internet 的輝煌時期啊,除了當時的 ASP 已經夠成熟 (當然以現在的 ASP.NET MVC 來比差太多了),Visual Basic 6.0 可開發 ActiveX Control (等同是挑戰 Java Applet 的地位),Visual C++ 6.0 的 MFC 可開發 Internet-based Application (ISAPI, Internet APIs),這段時間也是 IE 當紅的時候,自 IE4, IE5 一直到 IE6,Visual Studio 開發工具系列為微軟的 Internet 解決方案提供了豐富的開發基礎,不說別的,光是 Visual Basic 6.0 這個工具,就已經是超級長壽級的 Basic 開發工具了,其語言結構、API、開發工具成熟度以及利用 VB6 開發出來的元件與應用程式到現在還是相當程度的系統在使用,而且它也是開發 COM-based 元件最快速也最經濟的工具,所以到現在還是有很多人為 VB6 請命,甚至還是有人繼續以 VB6 為主題著書呢。

但是隨著微軟和 Sun 的關係惡化到對簿公堂,Visual J++ 開發工具也被迫終止,微軟雖然也開發了 J#,但普及程度到現在還是無法上升。在此同時 Java 技術蒸蒸日上,與只能開發 Java Applet 的時期相比早已天差地遠,這也迫使微軟必須投入資源開發能與 Java 抗衡的開發平台,.NET 就這麼出來了,不過 .NET 的開發也是一波三折,包含 ASP.NET (ASP 的後繼者) 以及 ADO.NET (雖然有 ADO 但它卻不能算是 ADO 的後繼者) 等技術,連同開發它們的程式語言 C# 以及 VB.NET,包裝在 Visual Studio .NET 2002 (7.0) 中一起推出,時間為 2002 年 2 月,包含了 Visual Basic, Visual C#, Visual Web Developer, Visual C++, Visual J# 等開發工具。它也是 Visual Studio 第一個將開發平台和程式語言、專案管理等功能全部整合在同一個 IDE 的版本,平台使用的是 .NET 1.0 (v1.0.3705),但它也可用來開發 COM-based 的應用程式,只是要經過 COM Interop 功能。

或許是功能沒有完全完成,過了一年多一點點的 2003 年 4 月,Visual Studio .NET 2003 推出了,一樣是包含 Visual Basic, Visual C#, Visual Web Developer, Visual C++, Visual J# 等開發工具,.NET 版本為 1.1 (v1.1.4322),這個版本活了兩年多一些,其實大家真正認識 .NET 是在這個版本,而且很有趣的是,微軟為了要讓大家早一步升級到 Visual Studio 2003,台灣微軟還推出了一個 NT$990 升級方案,讓已經買了 Visual Studio 2002 的公司或團隊能直接升級。

那個升級包的盒子長這樣...

相信應該不少人對這個畫面相當熟悉...

後來隨著微軟 .NET Enterprise Servers (也就是版本為 2005 的伺服器軟體集,如 SQL Server 2005) 的發展,新一代的 .NET 2.0 (v2.0.50727) 也在 2005 年 10 月問世,它的開發工具 Visual Studio 2005 (由此開始正式移除 .NET 的副標) 也於 2005 年 11 月正式上市,不過我那時已經是 MVP 了,所以自 Visual Studio 2005 開始所有的開發工具都是由 MSDN Universal Subscription 獲得的,也大概是這個時候,MSDN 反而已經取代開發工具單賣的盒裝,市面上也很少看到開發工具的盒裝版本了。.NET 2.0 也是微軟 .NET 平台迅速擴張的版本,尤其是像 ASP.NET 2.0 以及其後續的 ASP.NET 3.5,其基底都是 v2.0.50727,這個現象到 .NET 4.0 才正式被替代,但就像 VB6 一樣,市場上還是有很多以 ASP.NET 2.0/3.5 開發的應用程式。Visual Studio 2005 也是微軟開發工具集套件成員定型的版本,自 Visual Studio 2005 開始,內含的開發工具都一律是 Visual Basic, Visual C#, Visual C++ 等三種,其他的工具則是以外掛方式引入,這點到了現在 Visual Studio 2017 也還是一樣喔。

順帶一提,Visual Studio 2005 是微軟實現軟體生命週期管理 (Application Lifecycle Management, ALM) 的第一個版本,由它的高階版本以 "Team" 為名 (Team Suite, Team Architect, Team Developer, Team Tester) 就可得知一二。

接著兩年後的 2007 年 11 月,Visual Studio 2008 隨著 .NET 3.5 一起推出,中間雖然有一個 .NET 3.0,但是微軟並沒有為它推出開發工具,而是以 Visual Studio 2005 的外掛方式提供,正式內含到 Visual Studio 體系內的版本則是 2008,.NET 3.5 基於 .NET 2.0 上開發,承繼了 .NET 2.0 的特性以及廣大的使用者,即使到現在,也還是有相當多的系統與公司使用著 .NET 3.5。不過 Visual Studio 2008 的盒子卻是有不小改變,由傳統的紙盒改為塑膠盒裝,而且還有點設計感呢。

Visual Studio 2010 與 .NET 4.0 一起於 2010 年 4 月一起推出,.NET 4.0 最大的改變就是基底升級到了 v4.0.30319,加入了非同步的概念以及重新設計過的 CLR,並使用到今天,.NET 4.6.2 也還是使用它。Visual Studio 2010 IDE 最大的改變就是它使用了 WPF (Windows Presentation Foundation) 重寫了整個開發工具,讓它可以有更強的程式碼視覺編輯體驗,並且採用了 Managed Extensible Framework (MEF) 來作為擴充能力的基礎,讓它在附掛擴充套件時能更加快速與方便,而它也是 Visual Studio 效能會相依於顯示卡的第一個版本,只要顯示卡能夠平順的執行 WPF 應用程式,就能享有 Visual Studio 的絕佳體驗。不過說真的,.NET 4.0 才基於 WPF 做了些優化 (例如文字顯示的處理),不然 WPF 顯示中文字的效果真的會讓人覺得想扁人啊...。

Visual Studio 2012 隨著 .NET 4.5 於 2012 年 9 月推出,最大的改變是連選單列與最上方的標題列的視覺都整合起來了,並且基於 Visual Studio 2010 (其實 2008 就有人做了) 的 WPF 基礎,提供了深色和淺色的視覺效果,大家都知道深色對於長時間盯著 LCD 看的人的眼睛傷害比淺色低很多,所以很多人都喜歡使用深色系來開發,我也建議還沒試過的朋友試試,真的差很多。Visual Studio 2012 做的另一個有趣的改變,就是 LOGO 的風格換了,而且盒子再次回歸到紙盒型 (看來塑膠太傷本了),但是和以前 Visual Studio 2005 或更早之前的版本比較起來,Visual Studio 2012 (以及其後續的 Visual Studio) 的盒裝真的薄多了,這得歸功於電子書的流行,文件都線上化了,所以也不再需要放一大本的文件。

Visual Studio 2013 繼續著 Visual Studio 的傳統,隨 .NET 4.6 於 2013 年 10 月發行,工具本身的差異很小,但是 Visual Studio 2013 是第一個以視覺化方式整合 NuGet 管理的版本 (之前都要用套件管理員下指令),另外就是,Visual Studio 2013 是第一個提供 Community Edition (免費且等同於 Professional 等級) 的版本。

Visual Studio 2015 就是大家目前都在使用的版本,相信大家應該被一堆東西整合到頭昏腦脹了吧,像 Xamarin、Microsoft Azure、Python、node.js 等等一堆套件與擴展功能,都是拜 Visual Studio 2010 加入 MEF 的能力所賜,Visual Studio 廣納百川的特性,也讓它得到了地表最強開發工具的稱號。只是我一直很納悶,什麼都整了為什麼就是不整 Java 呢 ... (Visual Studio 有 Java 擴充套件,但不是官方釋出的)

好啦,我們即將在 2017 年 3 月 7 日迎來 Visual Studio 2017 (Visual Studio "15") 的正式推出,包含 .NET 4.6.2 以及 .NET Core 1.1 等重要開發工具的整合環境,特別用本文來慶祝 Visual Studio 20 歲。

PS1: 本文內的照片都是取自網路。

PS2: Visual Studio 的歷史資訊參考自:https://en.wikipedia.org/wiki/Microsoft_Visual_Studio