Windows Phone 的 Silverlight Runtime 变化

  • Jonathan Allen
  • 王灵军

2014 年 5 月 9 日

话题:语言 & 开发

最近以来我们一直关注于通用 XAML,但现在已转向于用于 Windows Phone 的 Silverlight。虽然通用 XAML(通用 Apps)注定最终会取代 Silverlight,但是 Silverlight 目前仍然是 Windows Phone 的开发者的选项之一。

背景

Microsoft 首先主要在 XAML 上面进行源源不断的创新和投资,然后才尽量在 Silverlight 中实现同样的功能。

大约 90% 的 Silverlight 的 APIs 都可以在 XAML 中使用。这样做的目的是为了以后好将 Silverlight 的所有余下功能都移入到 XAML 中。这些引人注目的 APIs 有锁屏、滤镜、VOIP、相机和剪切板等等。

Window Phone 8.1升级

Apps 从 Silverlight for WP 8.0 到 8.1 的升级过程是很简单的。你仅仅只需要在项目的右键菜单中选择升级就可以完成这个过程。由于还需要好一段时间才能升级完所有的 Windows Phone 8 设备,所以 Microsoft 建议应用商店中的 App 最好同时有着能用于 WP8 和 WP8.1 的版本(还有 7.1)。

Modern环境

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。

APIs

除了上面已提到的那些,所有其它 Silverlight 8.0 的 APIs 都可以在 Silverlight 8.1 中使用。绝大部分的 XAML APIs 都对 Silverlight 8.1 公开了,但有一个需要留意的例外,就是没有公开用于处理 Modern 资源技术(Modern Resource Technology)的任何 APIs。

  • Silverlight apps 现在可以访问 SD 卡。
  • 共享契约(Share Contract)现在可以交换二进制数据,以前只支持文本和 HTML。
  • Silverlight 现在可以作为 Picker 提供者,以便与类似于 Drop Box 的服务集成。
  • 支持地理围栏(GeoFencing)。
  • Silverlight apps 支持 WinRT 风格后台任务。
  • 增强了预约和日程安排功能,现可编辑和删除预约。
  • 现支持带附件的 Email。
  • Web 认证使得 OAuth 更易用。
  • 可访问性比以前好多了,但仍然有限。不同于 XAML,这里没有预定的各种样式,但 app 至少能查询可访问性的设置。
  • 数据漫游可以让手机和存储应用程序之间互相关联起来。在 Windows 8 和 Windows Phone 之间可以交换比如个人设置爱好、得分这样的用户信息,以及所保存的文件。此功能要求你预订一个应用程序的名称。

查名(Name Reservation

当你开发一个全新的 XAML 或 Silverlight 应用程序时,需要在 Windows 存储中为其预订一个名字,这与开发一个全新的 WinRT app 类似。

因为名字可能会冲突,已有的 Silverlight 8.0 应用程序升级至 Silverlight 8.1 时并不需要一个匹配的预订名。

框架选择

  • 全新 Apps:Silverlight 8.x 或 XAML
  • 已有 Windows Store App:XAML
  • 锁屏 App:Silverlight 8.x
  • 相机类 App,VOIP:Silverlight 8.x
  • 音乐 App:Silverlight 8.0 或 XAML
  • 已有 Silverlight Phone Apps:Silverlight 8.x 或 XAML

更多信息请见 Channel 9 的What’s New with Windows Phone Silverlight Apps

查看英文原文Changes to the Silverlight Runtime for Windows Phone


感谢崔康对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发