隨著Windows 8開發(fā)者預覽版的發(fā)布,人們對這個新的操作系統有很多意見想發(fā)表。但是很少有人談到Windows 8對程序員的影響。Windows 8是自從Windows 3.x 到 Windows 95以來,開發(fā)模型最大的一次升級。雖然這次升級帶來了很多好處,但是也帶了很多讓人痛苦的地方。如果你正在研究Windows 8本地應用的Metro UI和WinRT API,你應該注意下面十點:
1. 應用市場重新瓜分
如果你想讓你的應用完全兼容Widnows 8的話 (包括支持ARM CPU),你需要用 Metro/WinRT 完全重寫你的應用。這對很多想新進這個市場的開發(fā)者來說是個好事,但如果你是現有應用的開發(fā)者的話,你會發(fā)現你的優(yōu)勢一下子沒有了。
2. 異步模型
Windows 8的開發(fā)模型是高度以來異步操作的。這在有些場合是一個很好的方案,但也有時候讓人抓狂,例如下載文件。新的異步模型不光是處理異步調用,包括錯誤處理,問題回饋給用戶等等都是異步的。這就要求一個全新的UI方案,特別是對于習慣了WinForm的開發(fā)者來說。
3. 缺少直接的磁盤訪問
Windows 8不允許直接的系統級訪問,最麻煩的就是開發(fā)者不能直接訪問磁盤。Windows 8采用了一個極端的分離模型,如果你的應用必須訪問非自身的數據的話,你基本上可以放棄Windows 8了。
4. 觸摸UI
除非你已經習慣了編寫移動應用,否則轉移到新的觸摸式的UI風格還是很頭疼的。適用于鼠標和鍵盤的UI,并不一定適用觸摸屏,反之亦然。
5. 需要適應微軟App Store規(guī)則
如果你想要加入微軟的App Store的話,你就必須適應它的游戲規(guī)則。雖然規(guī)則看起來還算合理,但是讓人感覺很束縛,正如WP7的store那樣。
6. 重度強調云計算
雖然并沒有強制要求使用Cloud,Web Services等新型的技術,但微軟是很強調這些技術,并推薦他們的。在不同的設備中自動同步設置和數據將是一個默認的規(guī)則,用戶也會默認它存在。這就意味著你必須小心處理敏感數據,加密等問題。
7. 協議和接口式的交互
Windows 8的編程模型是,應用可以作為服務提供方,為系統或者其他應用提供服務和數據,例如聯系人,圖片。這種編程方式的轉變,對于習慣了直接訪問數據的開發(fā)人員來講,也是一種挑戰(zhàn)。
8. 市場的不確定性
微軟正在推動Windows 8在平板和手機上的應用,而Android也正在瘋狂的掠奪這塊市場。新的Metro UI似乎受到了開發(fā)者的一致批判,但是Metro又在觸摸市場獲得好評。目前用過Windows 8的還都是開發(fā)者,并不代表普通用戶。Windows 8能否被普通用戶接受并普及還是一個未知數。
9. 缺少平板硬件
大部分對Windows 8的批判都來自于沒有真實的平板設備去運行Windows 8,也就無法真實的體驗到Windows 8。不論是UI還是性能,你并不知道你的應用能否正常的平板設備上運行。
10. 前途不明的技術
這是最令我心痛的一點。微軟常常宣布一項“具有劃時代意義的”技術,然后就任其自生自滅,例如Kin,Zune,Silverlight,Live等等。誰知道微軟會不會對Windows 8從一而終?