Microsoft has released Native Extensions for Silverlight, a set of libraries which enable access to Windows 7 features including taskbar Jump Lists; access to attached devices including webcams, cameras and phones; the sensor API for accelerometer support; and even the ability to intercept Windows messages. The ability to intercept Windows messages allows lots of interesting hacks as veteran Visual Basic developers will recall; it was one of the tricks used to overcome limitations in early versions of VB.
The native extensions are only available to out of browser applications running outside the sandbox; the user must consent to trust such applications. Silverlight 4 already had the ability to use COM automation. These new extensions simply build on this existing feature, providing COM automation wrappers for these Windows 7 APIs.
What this means though is that Silverlight developers can create applications that integrate deeply with the Windows 7 desktop and local hardware.
Another way of looking at this is that the subset of Windows applications that can be implemented in Silverlight rather than the full .NET Framework has now increased. It lends some support to the theory which I considered here, that a future version of Silverlight will be the application platform for the Windows 8 app store and for mobile devices running Windows 8. This is speculation though; Microsoft has not said much publicly on the subject. Silverlight is well suited to an app store since installation is easy, updates are near-automatic, and apps are isolated from the rest of the operating system.
The native extensions are Windows 7 only. Forget the Mac, these things do not even work on Windows XP. They only apply to trusted out of browser applications though. Silverlight running in the browser still has similar features on Windows and Mac.
Tim,
I think you’re little biased here.
This package allows to take advantage of Win7 specific features in your silverlight app and at the same time make it cross-platform. What reason to support “Win7 taskbar integration” on Mac?
@Eugene It is not a matter of bias, it is an observation. Silverlight on Windows is increasingly differentiated from Silverlight on the Mac. Some features have a Mac equivalent, some do not; but the strategy seems to be to add more and more Windows-specific features. That is not necessarily a bad thing – I think it makes sense as an app strategy for Windows – but it has drifted further and further from the “WPF Everywhere” that was the initial concept.
Tim
Tim,
I don’t think you are correct while saying “Silverlight on Windows is increasingly differentiated from Silverlight on the Mac”. NESL is just a library that you may consider using in your app (if you target intranet users on Windows 7 for example). It is not built in the plug-in itself.
Emil
@Emil sure it is “just a library” but it is only able to exist because of a huge differentiator, which is COM interop only available on Windows. At the time this was introduced Microsoft positioned this as a minor feature put in at the request of corporate users wanting Office integration; but things like NESL now make it obvious that there were broader Windows-only ambitions behind it.
Tim