前一陣真的比較懶 WP8.1 已經出來這么長時間了現在才更新BLOG讓大家久等了,今天我先為大家介紹下 WP 8.1的開發框架,什么是微軟所推崇的 Universal APP,以及我們要開發 Universal APP的時候要注意哪些內容。
如果是您是一個剛剛接觸 WP開發的朋友可以先看下我之前的文章了解一下故事背景:Windows Phone 8 與 windows 8 開發技術概覽
首先給大家完善一個概念 - 那就是 Windows Phone 8.1 和 Windows Phone 8.0 的區別
1. WP8.0 的開發架構是基於 silverlight runtime 運行時
2. WP 8.1 的開發架構有兩種 silverlight runtime / Windwos XMAL ( 等同於Windows 8.1 ) 運行時
今后我所說的 Universal APP 是基於 Windows XAML 運行時的 包括以后我會詳細介紹 WP8.1 的新 feature 也會基於 Windows XMAL 這套框架下的內容進行主要介紹。
上面這張圖是我們最新的 Windows & Windows Phone 8.1 的開發平台架構圖在這里我們可以非常清楚的看到,藍色部分是 universal 的 其中包括的 WinJS 、C#、VB、C++ 只有 silverlight 是Windows Phone所獨有的,所以說如果我們想開發一個 Universal APP 可以基於一個 Windows 8.0 /8.1的開發架構下進行擴展到 WP 8.1 上來,這個過程是非常方便的。
另外之前我也為大家介紹過在WP8.0中如何共享代碼,在 8.1 universal app 中我們可以分享更多的代碼並且非常的方便, 這個common的內容提升是一個相當大的飛躍(從8.0 共享 27% 提升到了 8.1 共享 77%)所以我們在開發的過程中可以非常方面的share代碼,並且在VS2013中可以使用universal 的應用模板進行代碼分享。
接着我跟大家介紹一下 Windows Store Universal APP 在VS2013中升級 Update 2 安裝WP 8.1 的開發環境后,我們會看到 Universal Apps 的模板(同樣在 WinIS 和 C++ 中都有universal模板)
這里是universal APP 的項目結構,在一個SLN里面自動的創建了 WIN8.1 和 WP8.1 的應用project 並且 還有一個 Shared project,做過WP8.0開發的同學肯定注意到了這個Shared project 中有一個 app.xaml 和 app.xaml.cs 文件 這就意味着,WP的生命周期和 Win 8.1 一致了,小伙伴們不用在處理墓碑化啦。(Silverlight 架構下還是有墓碑話的),並且我們在Share project 中的文件會自動分享到 Win8.1 和 WP8.1中去 並且,在WP8.1 和Win 8.1 中有可以定義平台所特有的內容。
並且universal APP 也支持 Windows Runtime Components
另外在 Windows xaml 框架下我們可以我們提供了很多基礎控件的 universal ,換句話說就是相同的控件運行在不同的平台上的效果不樣,例如: Hub ,AppBar/CommandBar,Date/Time Pickers and List Pickers,ListView,Multi-select; containers, swipe selection,Flyouts,Media。
當然還有完全相同的,可以更容易的 share 代碼。
這里肯定有朋友想問我 按我以前開發的 8.0 silverlight 應用怎么辦?可不可以升級到8.1呢? 答案當然是肯定的! 可以升級到8.1,但是要有一些問題要注意,我也在這里給大家介紹一下。
首先在WP silverlight 8.1 我們可以從 8.0 的應用直接升級上來,非常的方便,這里要注意的是有一些功能目前只有在 silverlight 框架下可以使用, 在 Windows Xaml 中暫時沒有的:
也就是說如果你的應用在8.0中使用了一下功能,並且你想在8.1中繼續使用,那么你一定是用 silverlight 這套框架。
但是這里我有一個特別注意的地方: 如果你的WP silverlight 8.0 應用升級到8.1 用到了一下兩個功能那么你就要斟酌一下,更新的方法了。
Background Audio 不在支持,在8.1中需要您從寫成 background task
Continuous background execution agent 也不再支持, 同樣也需要使用 background task 代替
實現方法請參考 Windows 8.1 應用開發后台任務概述(Windows XAML)
所以說我們在選擇升級或者全新開發一個WP8.1 應用的時候有幾種選擇。
1. 如果我們只是想做一個WP 8.1 的APP 那么任何一個開發框架都適合。
2. 如果我們已有一個 Windows 應用商店的應用,那么我們選擇 Windows Xaml 框架開發可以最大的復用已有代碼。
3. 如果我們的應用要使用 鎖屏,lense,或者VOIP 這類功能那么我們只能選擇 WP silverlight 的開發框架。
4. 如果是一個音樂應用並且要使用后台播放那么,只能使用 8.0的WP silverlight 框架或者 WP 8.1 Windows XAML 框架。
5. 如果是一個現有的 WP Silverlight 項目我們可以選擇升級到 Silverlight 8.1 或者 重構到 WP 8.1 Windows XAML 框架。
今天我先給大家接招這么多內容,后面我會繼續給大家介紹 WP8.1 的新feature 敬請大家期待!
歡迎大家在這里和我溝通交流或者在新浪微博上 @王博_Nick