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

前言


這個世界從來都不缺變革,從工業革命到晶體管和集成電路,從生活電器到物聯網,從簡陋人機到精緻體驗,我們在享受技術帶來的便捷的同時,也在爲複雜設計而帶來的挑戰和生產力下降而痛並快樂着。而迫切期盼的,就是趁手的工具。曾幾何時,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 和微軟技術越發展越好。


目前已經有部分產品宣佈其新版本會支持 Visual Studio 2017 了,ComponentOne 的 2017V1 版本就是其中之一。ComponentOne Studio Enterprise 是一款專注於企業應用的.NET全功能控件套包,支持 WinForms、WPF、UWP、ASP.NET MVC 等多個平臺,幫助、在縮減成本的同時,提前交付豐富的桌面、Web和移動企業應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章