如果你有计划开发基于Windows 8的本地应用,那就要提前做好心理准备了。具体要做好哪些心理准备呢?来自Levit & James公司的工程师Justin James在博文《10 reasons Windows 8 will be painful for developers》中列举了十件在开发过程中可能会遇到的痛苦的事。CSDN为大家提供了该文的译文:
Windows 8开发者预览版自发布以来,其用户体验引起了大家的广泛关注和热议,但却很少有人谈论它给开发者所带来的影响。Windows 8是自Windows 3.X发展到Windows 95以来的最大的一次升级。其中有好的方面,同时也有不好的方面。如果你希望基于WinRT API开发具有Metro风格界面的Windows 8本地应用,你就要注意以下十件事。
1.新的市场格局
如果希望你开发的应用可以与Windows 8(包括运行于ARM结构的CPU之上的Windows 8)完全兼容,你就需要基于WinRT/Metro重写你的应用。对于希望进入这个市场开发者来说当然是好事,但对于已有成功应用的开发者来说,在这个平台上一切将要重新开始。
2.异步模型
开发任何长期运行的Windows 8应用,在很大程度上依赖于异步操作。在某些情景下,这可能是一个很好的解决方案,但在其他情况下却很难行得通(如下载文件)。它不仅仅用来解决异步调用的问题,它更要解决诸如错误处理、向用户提供反馈之类的问题。它要求全新的UI设计方案,与WinForms开发者所使用的界面完全不同。
3.限制直接访问硬盘
Windows 8在很多方面限制了对系统的直接访问,最令开发者犯难的是对硬盘的访问限制。Windows 8对应用采用了隔离模式,如果应用需要访问外部数据(包括网络服务),那么你就可以放弃把它移值到Windows 8上了。
4.触摸式UI界面
除非你曾开发过大量的移动应用,否则在设计Windows 8新风格UI界面时会遇到相当多的麻烦(因为此UI界面要实现触摸交互功能)。我曾花了很长时间才对此类UI界面的设计有了一定了解。在靠鼠标和键盘控制的屏幕上可以很好展现与工作的界面在触摸屏上的体验可能会很差,反之亦然。它们之间的平衡很难把握。尽管微软对Metro风格界面的体验已有多年研究,但它也在努力试图搞明白这一难题。
5.把握好微软应用商店的规则
如果你希望利用微软应用商店,你就要搞清楚它的规则。尽管规则很合理,但如果它像WP7 App Hub一样,它将会带来很大的不和谐。对于初来者,微软会很严格检查他们的应用,寻找所有问题,比如未处理的异常。虽然这可以保证高质量的应用,但却会让开发者很远离。另外,你还需要遵照审批流程。微软应用商店的详细内容仍未公布,但根据之前WP7体验来推测,它也可能会令开发者失望。
6.过于强调云计算
虽然微软并没要求使用云计算、Web服务器及其他技术,但很明显这些是被鼓励使用的。像自动同步设置,设备之间数据的传输等都将成为基本规则,毫无例外,用户也将期待使用这些功能。Windows 8可以很容易的做到这些(你可以将在本地保存的信息自动同步到Live上),但你要小心处理敏感数据。加密和其他隐私、安全技术将变得越来越重要。
7.协议和接品之间的交互
Windows 8所独具有的思想,即应用可以向操作系统提供服务(如提供联系信息、图片),而不再仅仅把数据存储在普通的目录下。虽然在技术层面比较容易,但要把它上升到理念层次就比较困难了。
8.市场的不确定性
下面将介绍一个更高层次的痛点。很清晰,微软正为平板电脑推出Windows 8,也可能再推出针对Windows Phone的Windows 8。现在我们可以清晰的看见Android正占领平板电脑市场,同时,只有试图尝试Windows 8开发者预览版的人才会使用Metro风格的UI界面。再者,Wetro风格的体验本来就是针对触摸设备的,而预览版只能安装于虚拟机上,所以使它真正达到平板电脑的体验还是很困难的。
另外,见过Windows 8开发者预览版本的用户并不代表其就是典型用户。Windows 8是否符合这个市场?微软是否会完全放弃Metro风格的UI界面?Windows 8平板电脑的市场前景如何?现在很难下定论。
9.缺少平板电脑硬件产品
没有平板电脑试运行Windows 8是一个严重的问题。同时你也无法判断你的应用程序在这些平板电脑上的体验是否被用户所喜欢,无论UI还是性能。
10.存在已淘汰技术的痕迹
这一点最伤我的心。微软曾有过把一项技术作为未来的重大发展技术,而几年后此技术便半路夭折的历史。我们不清楚微软是否会在Windows 8发布前、发布后而松懈(如Kin),Windows 8几年之后是否会走下破路(如Zune、Silverlight)。如果Windows 8不能获得成功,微软可能会另拓新径,而你在Windows 8上所做的一切努力将被放弃。