從Visual Studio看微軟20年技術變遷

77rou發表於2017-03-16

前言

這個世界從來都不缺變革,從工業革命到電晶體和積體電路,從生活電器到物聯網,從簡陋人機到精緻體驗,我們在享受技術帶來的便捷的同時,也在為複雜設計而帶來的挑戰和生產力下降而痛並快樂著。而迫切期盼的,就是趁手的工具。曾幾何時,Visual Studio 一直就是軟體開發的高效的標杆,從VB的簡潔語法和簡單的拖拽開始,Visual Studio 不斷的完善,不斷的適應快速變化的,加上成熟的生態,讓微軟世界裡的各個夥伴們活的有滋有味。

近年來,微軟開始了擁抱開源,投資雲技術,在開發工具領域有明顯的減持,這也讓很多追隨者感到不安。如今 Visual Studio 2017 的釋出,給了開發者幾點很明確的訊號:

  • 移動開發前景無限,解決方案多樣化
  • 跨平臺伺服器支援和伺服器輕量化
  • 開發過程標準化和開發效率持續提升
  • 服務優於產品

作為微軟工具的受益人,我們相信這是一個好的變化,有了變化,才有提升,才能提供更好的服務。

 

回顧

那麼,在 Visual Studio 的20年發展歷程中,都經歷了哪些歷程和技術變革呢?

 

根據微軟的資料,第一個使用 Visual Studio 品牌銷售的是 Visual Studio 97,後續版本(VS6)成為一代經典,即使今日依然還有企業和公司在使用;之後 Visual Studio 攜 .NET 而來,開創了C#時代,WinForm 替代了 VB,控制元件替代了 OCX,ASP.NET WebForm 開始嶄露頭角;隨著 Windows Vista 的慘淡,同時推出的新一代圖形介面技術 WPF 也發展緩慢,為了促進 WPF 發展,微軟使用 WPF 重寫了介面,釋出了 Visual Studio 2010,由於效能低下,資源消耗嚴重,這一版本流傳一般,隨後微軟快速重構,釋出了高效能的 Visual Studio 2012;隨後,軟體開發開始強調團隊整合,增強了 TFS 在 Visual Studio 的話語權,每次釋出都會隨著釋出 TFS 的新版本。因此我劃分五六個技術時期來詳細解說。

 

199x-2003年 COM/ActiveX 時期

微軟在開發 Win3.x 系列的時候公開出來的一套架構體系,目的在於根據介面執行時動態載入實現,從而降低開發耦合。這一時期,主要的開發語言是C++,但是開發效率比較低,當時的技術前沿是RAD,VB(語言)和 ActiveX(技術)剛好搭上這一班車,同時正式讓控制元件這個細分市場也開始嶄露頭角。隨著90年代後期 Java 和 Web 的崛起,COM/ActiveX 受到了挺大的衝擊,尤其是 web 程式設計,ASP 過於簡陋,執行引擎 VBScript 並不能將 VB 中的 RAD 概念引入,而且原生 VBScript 語言本身並不成熟,限制較多,解決方案是在 ASP 中呼叫 COM/ActiveX,這樣整個開發變得很複雜,慢慢消失在歷史中。

 

2002-2010年 WinForm/WebForm 時期

實際微軟開發 .NET 並不是非常順利,一開始借鑑了很多 COM 的設計理念,但是很多基礎設施並沒有實現出來,導致早期的 ASP.NET 並不是很穩定,很多開發者為了考慮相容性,甚至依然延續上一代產品的架構,通過匯入 COM 元件來實現底層,而 ASP.NET 僅僅是一層表現。另一面,由於 C# 語言的開速發展,結合 RAD 概念而開發出來的 Designer(設計器)迅速讓 WinForm/WebForm 成為開發利器,無論效率還是成品效果都獲得較高的使用者認可。

 

2007-2013年 WPF 時期

隨著.NET平臺的發展和成熟,此時 WinForm 使用者開發抱怨介面的精緻度問題和資源利用問題,但是這些是由於 WinForm 的底層實現僅僅做了一層 Win32 API 封裝導致,所以很難通過增強和修補來提升使用者體驗;恰好微軟推出其新一代作業系統,主打功能就是使用者體驗,為此,在大約2005年左右開啟了 WPF 技術專案,正式在 VS2008 中開始主推。但是由於效能和複雜實現,導致 WPF 認可度並不高,而同期推出的 Silverlight 更是沒有堅持幾年,就淹沒在歷史塵埃中了。

 

2009-2016年 ASP.NET MVC 時期

WebForm 技術雖然因為 RAD大受歡迎,但是其 ViewStates 技術讓大型專案和網際網路專案深受困苦,如是一部分人開始重構現有的 ASP.NET 技術,將業務和展現分離,逐漸形成了早期的 ASP.NET MVC 概念,隨後微軟快速跟上,並推出 Razor 技術,並徹底重寫了 HTTP 底層,徹底移除了 ViewStates,從此 web 開發不僅高效,同時也能符合 HTML 最新標準。到2012年,SPA 概念開始流行起來,越來越多的公司開始嘗試前後端分離,這讓 ASP.NET 有了一點危機,如是開始了 ASP.NET MVC WEB API 專案,在輕量級的 MVC 架構基礎上,再一次簡化,讓基於 RESTful API 的應用能夠在 .NET 圈裡採用。

 

2014-至今 UWP(Universal Windows Platform)時期

說真的,我不是很願意把這個列出來作為一個獨立的技術圈來說,實際上這個 UWP 並沒有多少新鮮的事物,更多的是一個概念,其表現層是 WPF 的 Xaml,底層是基於 projection 的一個通用平臺概念(比如PCL和WinRT),唯一能稱道的是後來加入的 Xamarin,將 C# 帶到全平臺移動開發領域,不過,目前仍屬小眾,還得繼續努力。

 

2016-至今 .NET Core 時期

自2016年正式釋出以來,.NET Core 表現越來越好,藉助更加強化的 OWIN 介面,很好的將 web 開發做解耦,讓第三方中介軟體有了更多的表現機會,但總體依然年輕,大規模採用仍需時日。

 

總結

時間荏苒,Visual Studio 品牌已經邁進20週年,從十幾年前開始做 .NET 控制元件開發就每天和 Visual Studio 打交道,也算是經歷了和見證了它的起起落落。如今,VS2017 正式宣佈釋出,併為此籌備了一場盛大的20週年慶典,藉此機會,祝願 Visual Studio 和微軟技術越發展越好。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28298702/viewspace-2135459/,如需轉載,請註明出處,否則將追究法律責任。

相關文章