Windows Embedded 的 Silverlight 并非真正意义上的 Silverlight

  • Abel Avram
  • 王波

2009 年 10 月 14 日

话题:.NETWindows语言 & 开发

随着 Windows Embedded CE 6.0 R3 的 RTM 版发布,微软为嵌入设备提供了相应的 Silverlight 版本。桌面版 Silverlight 和“ Windows Embedded 版 Silverlight”(即 Silverlight for WE)之间有多处重要的区别。

WE 版 Silverlight 其实是 C++ 编写的本地代码用户界面框架,“一种新型的设计者 / 开发人员范式,可极大地加强设备的用户界面”。该框架可安装在所有的手持设备亦可作为 WE CE 6.0 R3 的小工具(Gadgets)运行,支持类似于 Windows 7 的触摸和手势功能。

WE CE 6.0 R3 的 Platform Builder 基于 Visual Studio,它可把 WE CE 6.0 R3 的 Silverlight 应用程序移植到 Windows Embedded 的其他版本。Expression Blend 亦可开发该类应用程序。目前还不清楚是否会有其它移植 Silverlight 应用程序到 WE 的方式,但答案很可能是否定的。

Windows CE 开发人员 Jochen Dieckfo 发现了一系列 WE 版 Silverlight 区别于标准版 Silverlight 的特征

  • 最明显的特征就是在命名上;Windows Embedded CE 6.0 R3 的版本称为“Windows Embedded 版 Silverlight”,而桌面版则叫 Silverlight
  • Windows Embedded 版 Silverlight 用于在 Windows Embedded CE 6.0 R3 设备上,为外壳开发用户界面和应用程序,而 Silverlight 则是用于开发可运行在 Web 浏览器中的交互应用程序的
  • Windows Embedded 版 Silverlight 托管在可视化宿主中的对象树(描述 Silverlight 2 XAML 元素树 (即可视化树) 的实体),该可视化宿主底层为 Win32 窗口,而 Silverlight 则托管浏览器的插件对象树
  • Windows Embedded 版 Silverlight 仅支持本地 C++ 代码,而 Silverlight 则是基于.NET Framework 并使用 Visual C#.NET、Visual Basic、IronPython 和 JavaScript 编写的托管代码
  • Windows Embedded 版 Silverlight 的 API 集是全新的 API 集,与原来的 Silverlight API 有所区别,尽管大多 Silverlight 2 的功能已经添加到 Windows Embedded 版 Silverlight 中。注意:Windows Embedded 版 Silverlight 不支持 Silverlight 3 功能
  • Windows Embedded 版 Silverlight 不支持超链接(Hyperlink)控件或数据绑定

Silverlight 两个版本间有着巨大的差异。甚者,Windows Embedded 不能安装标准 Silverlight。似乎 Windows Embedded 版 Silverlight 仅是一个让 Windows Embedded 设备上的应用程序更加美观的用户界面框架,并把 UI 设计和代码开发更好的分离而已。

Windows Embedded Silverlight 的试用版可以从Windows Embedded Download Center下载。

查看英文原文:Silverlight for Windows Embedded CE Is Not True Silverlight

.NETWindows语言 & 开发