为了可以在浏览器外的 Silverlight 里使用,它通过 COM 自动化提供 Windows 7 的相关特性。主要功能包括消息截获、传感器 API、H.264 视频编码、任务栏扩展、语音 API 以及对便携设备的访问。
- 消息截获:允许应用程序截获发向所属窗口的 Window 消息。
- 传感器 API:提供对 Windows 7 传感器 API 的完全访问。
- 本地编码:允许应用程序把网络摄像机的音频 / 视频输入捕获到本地 H.264/AAC-LC 编码的媒体文件。此外,允许把应用程序用户界面的活动捕获成带有音频的视频。
- 任务栏访问:允许应用程序整合各种 Windows 7 任务栏特性,比如任务栏按钮重叠、跳转列表、任务栏按钮进度通知等等。
- 语音 API:允许应用程序使用 Windows 7“语音到文本”和“文本到语言”功能。
- 便携设备:允许应用程序枚举诸如音乐播放器、数码相机等连接设备上的内容。
微软宣称“目前大部分 Windows 平台的 API 无法以这种方式被 Silverlight 访问。一些虽然支持 COM,但不支持自动化;而其它的仅能通过 C/C++ 等原生语言进行访问。”然而,这对于 Silverlight 5 来说将不是问题,因为它将会获得 p/invoke 的能力,大多数.NET 开发者非常不喜欢使用非托管调用。与此同时, Native Extensions 2.0 for Microsoft Silverlight 提供了必要的封装。
原生扩展需要安装在客户端机器上。这可以预先安装或者在应用程序里使用 Installer.CheckNESLInstalled 和 Installer.InstallNESL。后者的弊端是你不得不把 NESLSetup.msi 打包到你的应用程序里。
查看英文原文: Native Extensions further to blur the boundary between Silverlight and WPF
评论