为了可以在浏览器外的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