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从一而终?