[Also see the first part – the keynote by Steven Sinofsky.]
The second part of the keynote was delivered by Scott Guthrie, Corporate Vice President, Developer Division, Microsoft Corp.
Scott started talking about Silverlight 3 and its new features that shipped several months. Specifically, Scott discussed the SketchFlow tool for quick UI prototyping. He also mentioned the success of Silverlight – it’s being used on more and more sites around the world, as well as in demanding enterprise environments. Today Silverlight is installed on 45% of the Internet-connected devices in the world (the number was 33% in the summer).
Scott announced Silverlight 4 with three foci: Media, Business Applications, and Out-of-Browser Experiences. The rest of the keynote is going to focus on Silverlight 4 features.
For webcams, there is support for some neat pixel shader effects on the video stream. Scott demoed a simple app with these effects as well as barcode scanner using an open source library for barcode reading.
IIS Smooth Streaming works by analyzing the network and CPU conditions and adaptively changing the bitrate by scaling down if necessary. The iPhone does not directly support Smooth Streaming today, but there is an extension for IIS Manager that enables iPhone output with Smooth Streaming. Unfortunately the demo didn’t work 🙂 It’s available online though at http://iis.net/iphone.
Other new features for application development include printing support, rich text editing, clipboard access, right-click support for context menus, and mouse wheeling for all the standard Silverlight controls (it’s funny that they have to add these things and everyone is excited about it – that’s what happens when the first releases are weak on features…). There’s also implicit styling support, drag and drop support, bidi and RTL support, hosting HTML controls in the app, commanding and MVVM, and of course additional controls and extensions for existing controls.
It’s possible to share assemblies across Silverlight and .NET 4.0 – no need to compile twice, which is great for common business logic to share across the client and the server, or for unit tests. There are some data binding improvements, UDP multicast support, REST (with ADO.NET Data Services) and WCF enhancements and improvements, and finally WCF RIA Services.
There are also enhancements in Visual Studio 2010 support for Silverlight, with a WYSIWYG design surface, XAML intellisense improvements, data binding, layout, styles and other features. Scott Hanselman demos these improvements in VS10. The DataGrid demo that Scott showed – with dragging a data source to the design surface – reminded me of the first days of WinForms 1.0. It’s about time Silverlight becomes on par with true UI development frameworks. 🙂
OOB support contains windowing APIs, notification popups, HTML support, and the OOB application can be a drop target even if it’s sandboxed. It’s also possible to build trusted applications that run outside the sandbox (this is called “elevated trust” but it’s not about running as admin, it’s just running outside of IE Protected Mode, which is low IL). For trusted applications there is additional support for custom window chrome, local file system access, cross-site network support, keyboard support in full screen mode, hardware device access, and the ability to access COM objects (through IDispatch only, not custom interfaces). This is done through the dynamic support in the current wave of languages (e.g. C# 4.0).
Finally, there was a significant focus on performance in Silverlight 4 – with the goal of being twice as fast, delivering 30% faster startup times and profiling support for Silverlight applications in Visual Studio 2010 and other profilers. It still remains a 10 second installation even though a lot of features were added.
The roadmap for Silverlight 4 is: There will be a Beta, and RC, and an RTM. The Beta will be feature-complete. The Silverlight 4 Beta is now available for download from http://silverlight.net. The final release will ship in H1 2010.
My big question remains: What’s to become of WPF with these extensions for Silverlight?…