UWP?UWP! - Build 2015有些啥?

Build 2015圓滿落幕了,不知大家有多少人刷夜看了直播呢?不管怎么說,想必各位都很好奇在這場微軟開發者盛宴上,Microsoft又發布了什么令人驚嘆的消息吧。筆者略微整理了一些與UWP相關的內容,拋磚引玉,並不全面,希望讀者多多指正。
(文章中涉及的圖片均來源於Build)
1. UAP改名UWP
Win10下的應用名稱正式確定為了Universal Windows App,也許是為了和以前的UAP划清關系以表示其真正做到了“Universal”。是的,UWP是本次Build大會最重要的主題之一,其跨平台兼容性,多語言支持以及對其他平台應用的支持都有着前所未有的“Universal”。微軟變了,變得更開放更廣大了,而這應該會讓大量開發者拍手叫好吧。
這條消息只是個引子,有關UWP的細節問題將在下面更詳細的提出。
2. 大不相同的App Store
WP/WinRT的用戶恐怕都有覺得Windows App Store中的應用太少的時候吧?微軟似乎也注意到了這一點。在Win10的應用商店中,微軟將“不擇手段”地增加應用商店里用戶的選擇,力保UWP有一個欣欣向榮的生態系統。我們來看一看都有些什么吧:
微軟所開發設備的全面通用
Windows 10並不存在WP10一說——從PC到RT,從Lumia到Surface,從搭載該系統的IoT開發板到運算能力強大的Xbox,均使用相同的Windows 10,所不同之處只有分辨率與外設而已,想必Windows在高分辨率屏幕下為人詬病的表現將會徹底翻盤。
與本主題更相關的,上述所有采用Windows 10作為OS的設備將共享相同AppStore。同時,微軟為App設計者提供了一整套工具以方便其將自己的應用適配各種平台,這點下文再詳述。想必光是這一點就足夠WP用戶覺得振奮了。
微軟的必殺技:傳統Win32PE程序的加入
傳統Win32PE,也就是大家都耳熟能詳的從MSDOS沿襲至今的桌面環境可執行文件,.exe便是其中最大的一支。將其轉換為UWP聽上去似乎有點科幻,但微軟卻真的在將其付諸實踐。
說到這一點,則不得不談此次Build大會中提及的Project Centennial——盡管該項目仍然處於開發階段,我們還並不能直接享受其成果,但可以預見的是,一旦該項目真正投入實際使用,將會給UWP應用生態圈帶來革命性改變:Build中給出的數據顯示,成熟的傳統PE應用有超過一千七百萬,這並不算各個小輔助程序等。將他們轉變為UWP帶來的影響有多大,不言而喻。說它是微軟的必殺技毫不為過。

海納百川——安卓、iOS應用也能運行
又是一個科幻的設定,但是它似乎也在一步步成真:Project ASTORIA提供內嵌於Eclipse/Android Studio的插件用於幫助從安卓項目生成能在Windows10上運行的UWP,微軟聲稱其有很高的代碼重用率,能在已有安卓邏輯的基礎上簡單的生成UWP。另外,iOS應用也將能通過類似的手段完成到UWP的遷移,但其具體細節仍在開發中。

上述手段能不能給UWP帶來一個欣欣向榮的應用生態系統呢?我們拭目以待吧。
3. 更開發者友好的集成開發環境
說到應用生態系統,開發者當然是必不可少的一部分,如果不能討好開發者誰來寫UWP呢?(咳咳)… 言歸正傳,作為微軟的當家IDE,Visual Studio 2015也將發生很大的變化,以給UWP開發者帶來更好的開發體驗。
Github的原生支持
不知道使用VS開發應用的開發者有多少人用過Team Foundation Server?平心而論,這是一個相當不錯的源代碼托管工具,但是想必大家更耳熟能詳的是開源界各大源碼托管工具,如git/svn等吧。微軟為了表現其擁抱開源的誠意,表示將在VS2015中增加對github的原生支持。

好頂贊啊~
跨平台的VS
哈,VS也要跨平台?是的,此次Build中,微軟宣布發布Visual Studio for Linux以及Mac OSX。今后即使是unix系程序員也可以使用vs了,只是不知道其他版本的vs是否會攜帶.net runtime,如果有,想必在非Windows上開發UWP的一幕即將成真。
UWP開發工具的升級
在新的VS中,將加入一系列輔助工具幫助開發UWP,如更強大全面的Design視圖,更好、更詳細地用於分析軟件運行性能、資源情況的調試工具以及支持在調試時實時查看UI元素排布情況的Live Visual Tree Inspector(類似於瀏覽器的類似功能)。它們的存在無疑是UWP開發者的又一福音。

Node.js和python的加入
作為腳本語言的風向標,Node和python無疑是最被廣大開發者談及的語言,筆者也是Node的忠實粉絲。之前VS將Html+js加入UAP的開發工具中已經十分驚艷,而今微軟將在VS2015中全面支持Node.js和python開發並為其提供相關工具。盡管並不明確它們能否用於開發UWP,但從該行為的趨勢來看,將來用腳本語言為UWP編寫相關組件的日子也不遠了。
未完待續,下一片博文將詳細介紹對於UWP開發者而言此次Build帶來的新特性。
