Native Extensions further to blur the boundary between Silverlight and WPF

| by Jonathan Allen Follow 500 Followers on Mar 08, 2011. Estimated reading time: 1 minute |

A note to our readers: You asked so we have developed a set of features that allow you to reduce the noise: you can get email and web notifications for topics you are interested in. Learn more about our new features.

Designed for use with “out-of-browser” instances of Silverlight, it uses COM automation to expose features specific to Windows 7. The major feature areas include Message Interception, Sensor API, H.264 video encoding, taskbar extensions, Speech API, and access to portable devices.

  • Message Interception: Allow applications to intercept Window messages sent to the containing window
  • Sensor API: Provide full access to the Windows 7 Sensor API.
  • Local Encoding: Allow applications to capture webcam audio/video input into a local H.264/AAC-LC encoded media file. Also allow capturing of application user interface activity as video with audio.
  • Taskbar Access: Allow applications to integrate various Windows 7 taskbar features like taskbar button overlays, jump lists, taskbar button progress notifications etc.
  • Speech API: Allow applications to use Windows 7 Speech-to-Text and Text-to-Speech capabilities
  • Portable Devices: Allow applications to enumerate content on connected devices like music players, digital cameras etc.

According to Microsoft “a large majority of the Windows platform API’s today cannot be accessed from Silverlight this way. Some do support COM, but do not support automation; while the others are only accessible through a native language like C or C++.” While this will be less of a problem with Silverlight 5, which will get p/invoke capabilities, most .NET developers strongly dislike making unmanaged calls. In the meantime Native Extensions 2.0 for Microsoft Silverlight provides the necessary wrappers.

Native Extensions need to be installed on the client machine. This can be ahead of time or from within the application using Installer.CheckNESLInstalled and Installer.InstallNESL. The downside of the latter is that you have to include the NESLSetup.msi package in your application.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you