在最近的開發者大會(Build 2016)上,微軟面向開發者分享了一系列更新。對於一名開發者來說,整個三天的內容,可以說是驚喜連連,令人激動不已。可貴的是,微軟的開發者大會現在一再強調的是“任何平臺”、“免費”這些滿懷社群精神的特性。在瞭解完開發者大會的內容之後,我最直接的反應就是,Windows 平臺將會成為比以往任何時候都更好的開發者的平臺,同時 Windows 和 Office 等平臺還有大量新興的、珍貴的機會出現。 如果看一遍視訊時間太久的話,那本文可以幫你瞭解其中特別值得關注的方面,請盡情分享這份開發者的盛宴吧。
Windows 裡內建的 Ubuntu
Windows 10 年度更新中將會推送一個重要功能,即 Windows subsystem for Linux,它使得我們能夠直接在 Windows 10 上執行使用者態 Linux 程式。網際網路企業多用 Linux 系列作為伺服器作業系統,但我們開發人員日常的開發和工作環境卻常常是 Windows。我們不得不一次次從“作業系統相容性”的深坑裡收拾好心情繼續上路。實際上,Windows 將內建的是一個 Ubuntu 系統的核心部分,有了它內建在 Windows 中,開發工作一下子“跨過山和大海”了,不用切換環境就直接在 Windows 裡完成開發工作。
Windows subsystem for Linux 的原理是通過在作業系統直接實現 Linux 系統呼叫來工作的,並不是虛擬機器,所以啟動飛快,效能也有保障。這樣一來,Windows 就變成了一個結合體:既擁有 Windows 原本的使用體驗,又擁有了工程師所需的 Linux 環境和工具。這基本上意味著在 Windows 上直接完成整個開發工作——不再像以前一樣在 Windows 上開發,再跑到 Linux 上跑測試;或者忍受 Linux 糟糕的 GUI 和網頁字型的開發體驗了。 一邊開著 Vim 擼 Python,一邊還能不時瞟一眼 b 站的神吐槽,是不是有點小激動?
Xamarin 與移動開發 DevOps
Build 大會第二天,紅衣教主Scott 宣佈Xamarin 將整合進 Visual Studio,並提供免費版。Xamarin 是先進的跨平臺移動應用開發工具,能夠使用統一的程式設計模型開發 iOS、Android 和 Windows UWP 應用程式。此前它一直是收費的,還挺貴的——二月剛被微軟收購,在本次 Build 大會上,即宣佈會整合進 Visual Studio,包括免費的社群版本。
Visual Studio 2015 中已經支援了基於 Apache Cordova 開發 Hybrid 移動應用。但這兩年,經過了著名的 Facebook 將 HTML5 應用程式向原生應用的改寫這樣的不成功案例之後,社群越來越對 Hybrid 應用程式的相容性、效能和安全性等方面存在一些疑慮,所以Hybrid 應用方案往往只在一些區域性會適當加以運用。
Xamarin 則是完全不同的工具,它是已被大量案例證明是可行的原生移動應用開發方式。運用 Xamarin 能夠開發直接呼叫裝置 API 的原生應用程式,它還提供了完整的介面設計器(包括故事板),並且這次還將帶來執行在 Windows 上的 iOS 模擬器,這樣就能做到完全就不用 Mac 就能開發 iOS 應用了。目前 Xamarin 在國內還沒有受到大量的關注和運用,但隨著其整合進免費的 Visual Studio 社群版,Xamarin 一定會成為移動開發的重要工具。
另外,Xamarin 線上還提供了雲測試服務,其中包含上千種機型的測試環境可用於執行自動化測試。而且這套線上服務將會與免費的 Visual Studio Online 服務整合,那樣整個移動開發的 DevOps 也就齊活兒了。
應用程式新方向:.NET Core 和 UWP 應用程式平臺
.NET Core 要火,相信我。因為 .NET Core 是個新興事物,它是微軟新開發出來的新專案,它從一開始就是開源、跨平臺的,它完全是基於社群協同開發的,程式碼就託管在 GitHub 上。具體來說,它是一個輕量級、模組化、向面雲的新平臺;與以往完整的 .NET 執行時不能直接相容;直接使用最新版本的 C# 語言和工具鏈;汲取了完整的 .NET 執行上一些有名框架的重要特性,剔除了那些過時的、過度抽象的、與特定作業系統和軟體繫結的特性。可以說,.NET Core是一個“脫胎換骨,重新做人”的新事物。
社群中支援 .NET Core 的各種第三方工具也在快速地增長,已經有支援它的 Docker 映象和 Yeoman生成器等工具,我們可以直接使用 Sublime Text 這樣的編輯器來開發 .NET Core 應用程式,而且JetBrains 已經在為它開發跨平臺IDE 了。 .NET Core 應用程式的結構與 Node.js 等典型的輕量級應用很類似,都是執行時+應用程式+第三方程式包 的形式,它的執行時只有 10 M 大小。
本次 Build 2016 大會期間,微軟在展示各種 Web 應用的 Demo 時都已經預設採用 .NET Core 了。 在 Windows 平臺上,微軟展示了他們持續打造“通用應用平臺”(UWP)的動作,比如將提供從 Win32 應用程式向 UWP 應用的轉換工具。開發 Windows 應用一直以來都有五花八門的技術,但現在 Windows 平臺的終端除了 PC,其他型別的裝置也多了起來。於是微軟開始推介這樣一個新的概念,希望開發者能夠“一次開發,到處執行”,相容性的部分交給 Windows 來解決。同樣,微軟現在公開展示的應用程式也儘量地改為了 UWP 應用程式,連上面提到的 Ubuntu 子系統中的 Bash 終端都以 UWP 應用程式的形式提供。
.NET Core 這個沒有歷史包袱的新平臺,加上 C# 這樣優秀的程式語言,想不火都難;而 UWP 作為微軟主推的應用程式模型,對於面向 Windows 使用者的應用程式來說,是一個明確的方向。
Office 和 Edge 瀏覽器外掛開發中的新機會
我已經很長一段時間沒有關注 Office 開發了,但這次 Build 2016 中分享的關於跨平臺的 Office 外掛開發的訊息還是令我耳目一新。總體來說,我認為 Office 外掛是一個潛力無限,市場廣闊的方向。
以往我們可以使用 VBA 和 Interop 等技術來開展 Office 相關的開發,但那些開發工作對開發人員的門檻較高,程式語言執行時方面的限制更讓這些定製化應用很難跨平臺。於是過去我們往往只在一些企業內部的需求中會考慮一些定製的 Office 開發。新的Office 外掛平臺現在允許開發人員使用熟悉的 Web 開發技術來實現、並提供了跨平臺的開發、除錯與釋出能力——就像開發一個瀏覽器外掛一樣簡單!另外,新的 Office 外掛所跨的平臺不光包括各種作業系統,還包括線上的 Office 365 和 iPad 等非桌面環境。
Office 在全球有十幾億安裝量,其深度使用者大多都是各類企業使用者,對資訊打磨、資料處理的需求十分豐富,而 Office 這套新的外掛平臺直接將所有 Office 使用者與開發者分享。對開發者而言,這其中的機會將是不可斗量的。 上面提到瀏覽器外掛,其實以往開發 IE 的外掛並不是一件簡單的事,倒是 Chrome 瀏覽器的外掛開發令人輕鬆了不少。是的,Office 的外掛開發就像開發一個 Chrome 外掛那樣簡單;還不止如此,Edge 瀏覽器最近也新增了對外掛的支援,而 Edge 外掛的開發機制不光與 Chrome 外掛的開發一樣簡單,甚至大量 API 都能與 Chrome 瀏覽器 API相容。Edge 作為 Windows 10 作業系統中的預設瀏覽器,其使用者量也會穩步上升,因此它必然也是一個不可小覷的平臺。
除了上面的各個方面,微軟還分享了一些其他工具和服務,例如用於構建智慧對話機器人的 Bot 框架和智慧識別的 Cognitive 服務等。這些工具切實地解決了很多難題, 提高了開發人員的效率。另外,我們看到微軟在運用新的思路來打造已有平臺、持續改善其產品的同時,也在努力降低開發應用程式的難度,同時給開發者創造了更多機會。
微軟在其 Visual Studio 網站上展示的服務思路是 “為任何開發者的任何應用程式打造的工具”,從本次開發者大會分享的內容來看,著實誠意滿滿,各位開發者不應該錯過!