At a Silverlight event today, Microsoft gave a first look at the next version of the company's development platform. Silverlight 5 will be a more complete, more capable development platform, and it should be a faster one, too, with hardware acceleration of various features. What the announcement didn't do is clarify Microsoft's future development direction any better.
One of Silverlight's success stories is as a platform for building streaming media applications. Silverlight 5 will strengthen the product in this area, including hardware-accelerated H.264 playback, "TrickPlay" support to allow fast-forward playback with pitch-corrected audio, and the ability to disable the screensaver during video playback.
The other niche Silverlight has carved out for itself is as a platform for line-of-business applications, delivered either through the Web browser or as standalone desktop applications. For these applications, Silverlight 5 offers richer facilities for building data-driven applications, GPU accelerated graphics, low-latency network connectivity, and improved print support.
It will be possible to make some Silverlight 5 applications "trusted." Trusted applications will be able to do things that normal Silverlight applications cannot, including creating multiple windows and calling platform-specific functionality using .NET's P/Invoke and COM interoperability facilities. An example Microsoft gave of why this would be useful is that it would enable a trusted Silverlight 5 application to access a USB security key, or a barcode scanner.
It's this that perplexes. Microsoft's strategy for desktop application development is unclear, to say the least. There's "traditional" native Win32 development, .NET development using WPF and the full .NET Framework, and Silverlight development. Each has its own strengths. Win32 is still the only way to obtain full access to everything that the Windows platform has to offer. Silverlight is the only one that is meaningfully cross-platform—the runtime is supported on Mac OS X (and Linux, to an extent, via Moonlight). And "full" .NET offers the same ease of development as Silverlight, but in a much more flexible, capable system.
The inclusion of P/Invoke and COM support for trusted Silverlight 5 applications means that Silverlight can encroach a little further on WPF's territory—traditionally these facilities were only available to full .NET applications—but they also mean kissing cross-platform support goodbye. Silverlight itself will continue to be available for Mac OS X, but any Silverlight applications that require platform-specific functionality obviously won't be.
This raises the question: why? Trusted Silverlight 5 applications are a Windows-only feature, so they might as well be written using the full .NET stack. Silverlight's positioning is already peculiar, and it appears that with Silverlight 5 that Microsoft is going to dilute one of the things that Silverlight can offer developers that nothing else in the Microsoft ecosystem can provide: cross-platform support.
And if cross-platform development is no longer an ambition for Silverlight at all—ceding that market to HTML5—why even retain the product? A WPF and .NET Client Profile combination could substantially serve the same role.
Redmond is also being quiet about the interaction with Windows Phone 7. Windows Phone 7 uses an extended version of Silverlight 3 for most non-game application development, so is already lagging behind the desktop, which is currently at version 4. Silverlight 5 will leave the phone even further behind. If Microsoft does not close up this gap, then one of the strengths of the Windows Phone platform—a common development platform across PC and phone (and, eventually, Xbox 360, though Microsoft was silent on this point too)—may be squandered.
The richer media capabilities may also reignite the "Silverlight or HTML5" debate within Microsoft, and the "Plugin or HTML5" debate in the world at large; browser plugins like Flash and Silverlight are already more capable media delivery platforms than standard HTML5, and that gap will only widen with the release of Silverlight 5.
Silverlight 5 will be available in beta in the first half of 2011, and is due for release in the second half of that year.
Source: ars technica