虽然微软说,wp7应用移植到win8上面是比较简单,只需要修改部分API和设计原则上的细节,同时它也提供了一份比较简洁的参考文档;
而实际上这种移植的工作量还是不小的,尤其当应用引用了较多底层的API的时候。
下面是移植应用过程中需要考虑的几个问题:
(1)UI: 基本所有的UI页面都会有所改动,主要是一个引用库的变迁,某些wp7上的控件在win8上面是不支持的,例如PhoneApplicationPage。
(2)数据库: 目前win8没有源生数据库,不过可以使用sqlite来实现数据存储;win8也不支持wp7中的SQLCE数据库。
(在win8中仍然有system.data.linq这种win32库,只是在64位的环境编译下会出错)
(3)假如原来的wp7应用还涉及到了注册手机闹钟,还得重新考虑响铃的逻辑。win8里没有闹钟这种概念,不过可以考虑换成所支持的消息推送Notification(即实现定时推送通知,参考博客)。
(4)后台进程模型:win8的后台模型和wp7类似,后台进程不能持续运行(间隔运行一次),可以参考: 博客 或 msdn文档。
(5)其他的一些引用库的变更。暂时没找到一份完整的参考文档,只能分散的搜索和替换了。
这里不得不吐槽一下.net中的库,一个dll库会有N多版本,一不小心就会出错...去使用这样的库真是一场浩劫。