本文為DevDiv移動開發社區創始人吳學友在Windows Phone 7發布之際寫得了一篇觀感文章。從Windows Phone 7與對比Windows
Mobile6.5到Windows Phone 7與對比主流作業系統,詳盡描述Windows Phone 7的優缺點,進步與退步。
從3月份的CTP(Community Technical Preview,Community Technical Preview本),到4月的CTP Refresh,然後是7月的Beta版本,正式版本的Windows Phone
7的SDK終於和大家見面了。下面我就從開發人員的角度談談Windows Phone 7:
首先,從對比Windows Mobile6.5開始吧。
升級變化之一:程式設計語言的變化
與Windows Mobile6.5不同,Managed 程式碼成了Windows Phone
7唯一的程式設計語言,而編寫Managed 程式碼將有兩種方式,一種是編寫Silverlight的程式,針對一般的手機應用;另外一種方式是編寫XNA的程式,更適合遊戲的開發。
這裡的Silverlight 程式不同於傳統意義上的Silverlight,雖然它是源於Silverlight
3,但是去掉了一部分不適用於行動裝置的特性,同時又加入了一些Silverlight
4的特性或者是針對行動裝置的代碼。另外,傳統的Silverlight程式都是在瀏覽器中執行的;但Windows Phone
7上的Silverlight是瀏覽器外用單獨啟動並執行。
對於XNA程式,絕大部分國內開發人員或許比較陌生。XNA是以前微軟用來開發XBox上的遊戲以及Zune上的應用程式的一套開發工具。不過由於XBox和Zune一直沒有正式進入國內,國內開發人員關注這方面的內容甚少。XNA的開發環境是一套基於Visual
Studio的,被稱為XNA Game Studio的東西。
升級變化之二:對第三方應用限制增多
Windows Phone 7的另一個顯著變化是對第三方應用開發限制增多了,主要包括:
由於Windows Phone 7的第三方軟體不能在後台執行,只能單任務。後台監控簡訊、電話等傳統應用基本行不通;
開發人員不能在使用C++作為程式設計語言,當前C#是Windows Phone 7 Series平台上唯一支援的開發語言;
目前還不支援VB開發;沒有任何機制調用系統API。
對比主流作業系統
除了app store外,現在iPhone是大家學習的目標:多點觸摸、手勢、電容屏、絢麗的介面……等等。與Symbian, Android,
iPhone比較,我們沒辦法單純說它比那個平台好,比那個平台差,就對比說說Windows Phone 7的進步與退步:
進步一: 開發更簡單
開發難度較Android、iPhone相當,甚至要更簡單,微軟有出色的Visual
Studio這款IDE,手機平台模擬器,電話、簡訊類比工具做的也非常出色。
Visual
Studio可以是說是最好的整合開發工具,相對於Android採用的Eclipse,優勢比較明顯。Eclipse經常會出現無法編譯,需要反覆更
新、反應遲鈍等現象;同時Android模擬器佔用資源很大;Android開發包與Eclipse協同工作需要做複雜配置工作,而Windows
Phone直接安裝SDK即可,幾乎不需要配置。
另外,開發Windows Mobile/Windows Phone應用只能在Windows作業系統上;開發Android應用,Windows,
Linux, Mac OS作業系統都可以。
iPhone開發工具簡單實用,但是缺少必要的如類比電話、簡訊等工具支援。
相對來說,Symbian開發就複雜很多了,Symbian目前是唯一一款非ARM指令的模擬器,
由於與手機環境有差異,導致很多問題沒法在模擬器上複現,尤其對底層開發人員來說Symbian模擬器用處不大;另外,Symbian還沒有很好解決在Linux上開發的問題;電話、簡訊類比工具配置複雜,配置成功者少之又少。
進步二: 徹底變革菜單 增強觸控體驗
Android/iPhone就是為觸控螢幕設計的,後來者具有先天的優勢。
Windows Phone
7為了更好的支援觸控螢幕,對菜單進行了徹底的改革,基本上拋棄了傳統Windows的菜單形式,螢幕分配出來特定地區作為菜單,菜單佔用的空間變大,更適合於手觸摸;這點上已經達到了Android/iPhone的水平,再加上電容屏、多點觸摸,相對於Windows
Mobile 6.5是個巨大的進步,也是它最大的亮點。
而Symbian 3的菜單仍舊停留在傳統的Windows菜單水平,由於功能表項目之間間距過小,很容易出現點錯菜單的現象,這是Symbian
3被認為落後其他平台一代的重要原因之一。
退步: 暫不支援多任務
目前Symbian/Android是支援多任務的,Android對多任務進一步做了些特殊處理,系統資源不足時候優先關閉後台執行的程式,保證關鍵任務(如電話)可以穩定執行。
Windows Phone 7不再支援多任務,不再支援背景工作,這點與iPhone 3GS及以前的機制相同,某種程度上來說這是一個退步。
iPhone 4隻支援部分多任務;程式可以放到後台,但是在後台處於掛起狀態,程式是不能執行任何操作的,只是免去了程式退出儲存狀態之苦。
開發人員:多數人處於觀望狀態
開發人員對Windows Phone 7反應不一,有人讚許Windows Phone取得的巨大進步,有的人對微軟的進度頗有微詞,對Windows
Phone 7的iPhone化很不以為然,多數人則處於觀望狀態。
目前還不清楚 Windows Phone
7能獲得廠商多大程度的支援,開發人員的態度很大程度上取決於第三方軟體公司的戰略,軟體公司戰略則取決於終端廠商對Windows
Phone7認可程度,所以現在是考驗微軟的公關時刻了。
總之,從開發人員角度來講,Windows Phone進步是明顯的,電容屏、多點觸摸、手勢支援、更加絢爛的介面、編程門檻變得更低。但是Windows
Phone退步的地方也不少,單任務,不支援背景程式,不支援c/c++編程介面,使開發人員能做的事情變得少了很多。不過,就單任務問題,以微軟的角度來說,似乎他們認為手機的穩定性,快速響