最近以来我们一直关注于通用XAML,但现在已转向于用于Windows Phone的Silverlight。虽然通用XAML(通用Apps)注定最终会取代Silverlight,但是Silverlight目前仍然是Windows Phone的开发者的选项之一。
Microsoft首先主要在XAML上面进行源源不断的创新和投资,然后才尽量在Silverlight中实现同样的功能。
大约90%的Silverlight的APIs都可以在XAML中使用。这样做的目的是为了以后好将Silverlight的所有余下功能都移入到XAML中。这些引人注目的APIs有锁屏、滤镜、VOIP、相机和剪切板等等。
Apps从Silverlight for WP 8.0到8.1的升级过程是很简单的。你仅仅只需要在项目的右键菜单中选择升级就可以完成这个过程。由于还需要好一段时间才能升级完所有的Windows Phone 8设备,所以Microsoft建议应用商店中的App最好同时有着能用于WP8和WP8.1的版本(还有7.1)。
Silverlight 8.1在“Modern环境” 中运行。实际上这意味着Silverlight 8.1需要一个WMAppManifest以及另一个appxManifest。如果没有appxManifest,开发者就无法使用一些较新基于XAML的特性。
Silverlight 8.1和8.0二者之间并不100%兼容。像Array.Sort就不再使用稳定排序算法,这是因为在某些应用中该算法会出问题。
另外一个问题就是快速应用程序恢复。在Silverlight 8.0中,这是一个可选的功能,而在Modern环境中,该功能是必选的。
在你按下返回按钮时,XAML apps并不会停止运行,但Silverlight 8.1应用程序默认会被终止执行,这一点如同Silverlight 8.0应用程序,不过用户可以禁用此默认设置。
当前的Silverlight 8.1无法使用背景音频,希望在以后的功能更新中会修复该问题。
请留意Silverlight 8.0应用程序并不是在Modern环境中运行,也就是说Silverlight 8.0是100%兼容于Windows Phone 8.1。
除了上面已提到的那些,所有其它Silverlight 8.0的APIs都可以在Silverlight 8.1中使用。绝大部分的XAML APIs都对Silverlight 8.1公开了,但有一个需要留意的例外,就是没有公开用于处理Modern资源技术(Modern Resource Technology)的任何APIs。
当你开发一个全新的XAML或Silverlight应用程序时,需要在Windows存储中为其预订一个名字,这与开发一个全新的WinRT app类似。
因为名字可能会冲突,已有的Silverlight 8.0应用程序升级至Silverlight 8.1时并不需要一个匹配的预订名。
更多信息请见Channel 9的What’s New with Windows Phone Silverlight Apps。
查看英文原文:Changes to the Silverlight Runtime for Windows Phone
感谢崔康对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。