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